58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
// 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
 |