|  | // RUN: clang-diff -dump-matches %S/Inputs/clang-diff-basic-src.cpp %s -- | FileCheck %s | 
|  |  | 
|  | // CHECK: Match TranslationUnitDecl{{.*}} to TranslationUnitDecl | 
|  | // CHECK: Match NamespaceDecl: src{{.*}} to NamespaceDecl: dst | 
|  | namespace dst { | 
|  | // CHECK-NOT: Match NamespaceDecl: src{{.*}} to NamespaceDecl: inner | 
|  | namespace inner { | 
|  | void foo() { | 
|  | // CHECK: Match IntegerLiteral: 321{{.*}} to IntegerLiteral: 322 | 
|  | int x = 322; | 
|  | } | 
|  | } | 
|  |  | 
|  | // CHECK: Match DeclRefExpr: :foo{{.*}} to DeclRefExpr: :inner::foo | 
|  | void main() { inner::foo(); } | 
|  |  | 
|  | // CHECK: Match StringLiteral: foo{{.*}} to StringLiteral: foo | 
|  | const char *b = "f" "o" "o"; | 
|  |  | 
|  | // unsigned is canonicalized to unsigned int | 
|  | // CHECK: Match TypedefDecl: :nat;unsigned int;{{.*}} to TypedefDecl: :nat;unsigned int; | 
|  | typedef unsigned nat; | 
|  |  | 
|  | // CHECK: Match VarDecl: :p(int){{.*}} to VarDecl: :prod(double) | 
|  | // CHECK: Update VarDecl: :p(int){{.*}} to :prod(double) | 
|  | // CHECK: Match BinaryOperator: *{{.*}} to BinaryOperator: * | 
|  | double prod = 1 * 2 * 10; | 
|  | // CHECK: Update DeclRefExpr | 
|  | int squared = prod * prod; | 
|  |  | 
|  | class X { | 
|  | const char *foo(int i) { | 
|  | if (i == 0) | 
|  | return "Bar"; | 
|  | // CHECK: Insert IfStmt{{.*}} into IfStmt | 
|  | // CHECK: Insert BinaryOperator: =={{.*}} into IfStmt | 
|  | else if (i == -1) | 
|  | return "foo"; | 
|  | return 0; | 
|  | } | 
|  | X(){} | 
|  | }; | 
|  | } | 
|  |  | 
|  | // CHECK: Move CompoundStmt{{.*}} into CompoundStmt | 
|  | void m() { { int x = 0 + 0 + 0; } } | 
|  | // CHECK: Update and Move IntegerLiteral: 7{{.*}} into BinaryOperator: +({{.*}}) at 1 | 
|  | int um = 1 + 7; | 
|  |  | 
|  | namespace { | 
|  | // match with parents of different type | 
|  | // CHECK: Match FunctionDecl: f1{{.*}} to FunctionDecl: (anonymous namespace)::f1 | 
|  | void f1() {{ (void) __func__;;; }} | 
|  | } | 
|  |  | 
|  | // CHECK: Delete AccessSpecDecl: public | 
|  | // CHECK: Delete CXXMethodDecl |