diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-12-03 03:49:44 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-12-03 03:49:44 +0000 |
| commit | 0fd8fae0a68fc1693022e5bee9ed6f20a552efb2 (patch) | |
| tree | 4eeed6675e32cdce09587d59e89906192256c619 /clang/tools | |
| parent | 3b107b172d51a80429dc6a7e2abb419eff3992fa (diff) | |
| download | bcm5719-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.cpp | 7 |
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()); |

