summaryrefslogtreecommitdiffstats
path: root/clang/tools
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-12-03 03:49:44 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-12-03 03:49:44 +0000
commit0fd8fae0a68fc1693022e5bee9ed6f20a552efb2 (patch)
tree4eeed6675e32cdce09587d59e89906192256c619 /clang/tools
parent3b107b172d51a80429dc6a7e2abb419eff3992fa (diff)
downloadbcm5719-llvm-0fd8fae0a68fc1693022e5bee9ed6f20a552efb2.tar.gz
bcm5719-llvm-0fd8fae0a68fc1693022e5bee9ed6f20a552efb2.zip
[libclang] Allow indexing/get-cursor/etc. for the exception variable in a C++ catch.
llvm-svn: 145750
Diffstat (limited to 'clang/tools')
-rw-r--r--clang/tools/libclang/CIndex.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 5e1d1234d97..a189042f564 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -1737,6 +1737,7 @@ public:
void VisitCXXTypeidExpr(CXXTypeidExpr *E);
void VisitCXXUnresolvedConstructExpr(CXXUnresolvedConstructExpr *E);
void VisitCXXUuidofExpr(CXXUuidofExpr *E);
+ void VisitCXXCatchStmt(CXXCatchStmt *S);
void VisitDeclRefExpr(DeclRefExpr *D);
void VisitDeclStmt(DeclStmt *S);
void VisitDependentScopeDeclRefExpr(DependentScopeDeclRefExpr *E);
@@ -1909,6 +1910,12 @@ void EnqueueVisitor::VisitCXXUuidofExpr(CXXUuidofExpr *E) {
if (E->isTypeOperand())
AddTypeLoc(E->getTypeOperandSourceInfo());
}
+
+void EnqueueVisitor::VisitCXXCatchStmt(CXXCatchStmt *S) {
+ EnqueueChildren(S);
+ AddDecl(S->getExceptionDecl());
+}
+
void EnqueueVisitor::VisitDeclRefExpr(DeclRefExpr *DR) {
if (DR->hasExplicitTemplateArgs()) {
AddExplicitTemplateArgs(&DR->getExplicitTemplateArgs());
OpenPOWER on IntegriCloud