diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:11:37 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:11:37 +0000 |
commit | 461a67fa15370a9ec88f8f8a240bf7c123bb2029 (patch) | |
tree | 6942083d7d56bba40ec790a453ca58ad3baf6832 /test/Tooling/clang-diff-basic.cpp | |
parent | 75c3240472ba6ac2669ee72ca67eb72d4e2851fc (diff) |
Vendor import of clang trunk r321017:vendor/clang/clang-trunk-r321017
Notes
Notes:
svn path=/vendor/clang/dist/; revision=326941
svn path=/vendor/clang/clang-trunk-r321017/; revision=326942; tag=vendor/clang/clang-trunk-r321017
Diffstat (limited to 'test/Tooling/clang-diff-basic.cpp')
-rw-r--r-- | test/Tooling/clang-diff-basic.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/Tooling/clang-diff-basic.cpp b/test/Tooling/clang-diff-basic.cpp new file mode 100644 index 000000000000..a0c0163530ff --- /dev/null +++ b/test/Tooling/clang-diff-basic.cpp @@ -0,0 +1,57 @@ +// 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 |