summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Pichet <pichet2000@gmail.com>2010-12-08 09:11:05 +0000
committerFrancois Pichet <pichet2000@gmail.com>2010-12-08 09:11:05 +0000
commitcf7731b40bcb162776fb2dca35aae72e60eb2496 (patch)
tree84c1877dc8a6d347bb748d0529fad97bd468a872
parentc247e1a11900da1acf4079fbccd528b497d101d1 (diff)
downloadbcm5719-llvm-cf7731b40bcb162776fb2dca35aae72e60eb2496.tar.gz
bcm5719-llvm-cf7731b40bcb162776fb2dca35aae72e60eb2496.zip
Fix bug where annotate tokens was not working for BinaryTypeTraitExpr.
CIndex's EnqueueVisitor must visit elements backward apparently. llvm-svn: 121247
-rw-r--r--clang/test/Index/annotate-tokens.cpp12
-rw-r--r--clang/tools/libclang/CIndex.cpp2
2 files changed, 11 insertions, 3 deletions
diff --git a/clang/test/Index/annotate-tokens.cpp b/clang/test/Index/annotate-tokens.cpp
index 944f1a11a57..0aac96b461b 100644
--- a/clang/test/Index/annotate-tokens.cpp
+++ b/clang/test/Index/annotate-tokens.cpp
@@ -1,9 +1,10 @@
struct bonk { };
void test(bonk X) {
X = X;
+ __is_base_of(bonk, bonk);
}
-// RUN: c-index-test -test-annotate-tokens=%s:1:1:5:5 %s | FileCheck %s
+// RUN: c-index-test -test-annotate-tokens=%s:1:1:6:5 %s | FileCheck %s
// CHECK: Keyword: "struct" [1:1 - 1:7] StructDecl=bonk:1:8 (Definition)
// CHECK: Identifier: "bonk" [1:8 - 1:12] StructDecl=bonk:1:8 (Definition)
// CHECK: Punctuation: "{" [1:13 - 1:14] StructDecl=bonk:1:8 (Definition)
@@ -20,4 +21,11 @@ void test(bonk X) {
// CHECK: Punctuation: "=" [3:7 - 3:8] CallExpr=operator=:1:8
// CHECK: Identifier: "X" [3:9 - 3:10] DeclRefExpr=X:2:16
// CHECK: Punctuation: ";" [3:10 - 3:11] UnexposedStmt=
-// CHECK: Punctuation: "}" [4:1 - 4:2] UnexposedStmt=
+// CHECK: Keyword: "__is_base_of" [4:5 - 4:17] UnexposedExpr=
+// CHECK: Punctuation: "(" [4:17 - 4:18] UnexposedExpr=
+// CHECK: Identifier: "bonk" [4:18 - 4:22] TypeRef=struct bonk:1:8
+// CHECK: Punctuation: "," [4:22 - 4:23] UnexposedExpr=
+// CHECK: Identifier: "bonk" [4:24 - 4:28] TypeRef=struct bonk:1:8
+// CHECK: Punctuation: ")" [4:28 - 4:29] UnexposedExpr=
+// CHECK: Punctuation: ";" [4:29 - 4:30] UnexposedStmt=
+// CHECK: Punctuation: "}" [5:1 - 5:2] UnexposedStmt= \ No newline at end of file
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index e386180ab95..54f8e5b4c2b 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -1893,8 +1893,8 @@ void EnqueueVisitor::VisitUnaryTypeTraitExpr(UnaryTypeTraitExpr *E) {
}
void EnqueueVisitor::VisitBinaryTypeTraitExpr(BinaryTypeTraitExpr *E) {
- AddTypeLoc(E->getLhsTypeSourceInfo());
AddTypeLoc(E->getRhsTypeSourceInfo());
+ AddTypeLoc(E->getLhsTypeSourceInfo());
}
void EnqueueVisitor::VisitUnresolvedMemberExpr(UnresolvedMemberExpr *U) {
OpenPOWER on IntegriCloud