]> granicus.if.org Git - clang/commitdiff
[libclang] Fix infinite loop when doing visitation of an OpaqueValueExpr.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sat, 3 Dec 2011 03:49:47 +0000 (03:49 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sat, 3 Dec 2011 03:49:47 +0000 (03:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145751 91177308-0d34-0410-b5e6-96231b3b80d8

test/Index/get-cursor.cpp
tools/libclang/CIndex.cpp

index db27c241fd60df5b6c9031339769d9333b5b42eb..e1e6835becad59ca42a705f94009d36715ef6c4d 100644 (file)
@@ -89,3 +89,7 @@ void test() {
 // RUN: c-index-test -cursor-at=%s:38:12 -cursor-at=%s:39:5 %s | FileCheck -check-prefix=CHECK-CXXCATCH %s
 // CHECK-CXXCATCH: TypeRef=struct X:3:8
 // CHECK-CXXCATCH-NEXT: TypeRef=struct X:3:8
+
+// RUN: c-index-test -test-load-source-usrs local %s | FileCheck -check-prefix=CHECK-USR %s
+// CHECK-USR: get-cursor.cpp c:get-cursor.cpp@472@F@test#@e Extent=[38:12 - 38:15]
+// CHECK-USR: get-cursor.cpp c:get-cursor.cpp@483@F@test#@x Extent=[39:5 - 39:8]
index a189042f56449b3e3bd54bd1b1f8d4f7f0840cc2..d2b5ba7ce5d77c6f947b49603f7efdbedc479326 100644 (file)
@@ -2084,7 +2084,6 @@ void EnqueueVisitor::VisitOpaqueValueExpr(OpaqueValueExpr *E) {
   // visit that.  This is useful for (e.g.) pseudo-object expressions.
   if (Expr *SourceExpr = E->getSourceExpr())
     return Visit(SourceExpr);
-  AddStmt(E);
 }
 void EnqueueVisitor::VisitPseudoObjectExpr(PseudoObjectExpr *E) {
   // Treat the expression like its syntactic form.