From 0a03a3f98b14006a54bcac9e8908a7c9f50e519f Mon Sep 17 00:00:00 2001 From: Francois Pichet Date: Wed, 8 Dec 2010 09:11:05 +0000 Subject: [PATCH] Fix bug where annotate tokens was not working for BinaryTypeTraitExpr. CIndex's EnqueueVisitor must visit elements backward apparently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121247 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Index/annotate-tokens.cpp | 12 ++++++++++-- tools/libclang/CIndex.cpp | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/test/Index/annotate-tokens.cpp b/test/Index/annotate-tokens.cpp index 944f1a11a5..0aac96b461 100644 --- a/test/Index/annotate-tokens.cpp +++ b/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/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index e386180ab9..54f8e5b4c2 100644 --- a/tools/libclang/CIndex.cpp +++ b/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) { -- 2.50.1