aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-12-03 03:49:47 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-12-03 03:49:47 +0000
commitd977e6b0eb4c9b57b0aad6e9e0be39cc67b3a8c7 (patch)
tree1a70d5e0bf7ccad07306284b6eaacd9704cb1b1d
parentdcbb2fb8710459fdc8073b76a4ef73fbbcbeac9f (diff)
[libclang] Fix infinite loop when doing visitation of an OpaqueValueExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145751 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Index/get-cursor.cpp4
-rw-r--r--tools/libclang/CIndex.cpp1
2 files changed, 4 insertions, 1 deletions
diff --git a/test/Index/get-cursor.cpp b/test/Index/get-cursor.cpp
index db27c241fd..e1e6835bec 100644
--- a/test/Index/get-cursor.cpp
+++ b/test/Index/get-cursor.cpp
@@ -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]
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index a189042f56..d2b5ba7ce5 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -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.