diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-02-14 17:00:16 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-02-14 17:00:16 +0000 |
commit | 9909df3b3afe294f81a935edf7a0ffea15834c39 (patch) | |
tree | 9283571d3e2deea1b726b327f4a9371a5faffa37 | |
parent | 85bc995c5bdd5c5b2a7b12284ea35d6e4deb6ceb (diff) | |
download | bcm5719-llvm-9909df3b3afe294f81a935edf7a0ffea15834c39.tar.gz bcm5719-llvm-9909df3b3afe294f81a935edf7a0ffea15834c39.zip |
Handle 'UsingDirective' in CFGRecStmtDeclVisitor.
llvm-svn: 125491
-rw-r--r-- | clang/include/clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h | 2 | ||||
-rw-r--r-- | clang/test/Analysis/misc-ps-region-store.cpp | 15 |
2 files changed, 17 insertions, 0 deletions
diff --git a/clang/include/clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h b/clang/include/clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h index f20a49a6fcd..38fc216c04f 100644 --- a/clang/include/clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h +++ b/clang/include/clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h @@ -66,6 +66,7 @@ public: DISPATCH_CASE(Record) // FIXME: Refine. VisitStructDecl? DISPATCH_CASE(CXXRecord) DISPATCH_CASE(Enum) + DISPATCH_CASE(UsingDirective) default: assert(false && "Subtype of ScopedDecl not handled."); } @@ -85,6 +86,7 @@ public: DEFAULT_DISPATCH(ObjCMethod) DEFAULT_DISPATCH(ObjCProtocol) DEFAULT_DISPATCH(ObjCCategory) + DEFAULT_DISPATCH(UsingDirective) void VisitCXXRecordDecl(CXXRecordDecl *D) { static_cast<ImplClass*>(this)->VisitRecordDecl(D); diff --git a/clang/test/Analysis/misc-ps-region-store.cpp b/clang/test/Analysis/misc-ps-region-store.cpp index e87fba41f96..1dba09d76dd 100644 --- a/clang/test/Analysis/misc-ps-region-store.cpp +++ b/clang/test/Analysis/misc-ps-region-store.cpp @@ -225,3 +225,18 @@ void Foo3<T>::Bar() { Baz(); value_(); } + +//===---------------------------------------------------------------------===// +// Handle misc. C++ constructs. +//===---------------------------------------------------------------------===// + +namespace fum { + int i = 3; +}; + +void test_namespace() { + // Previously triggered a crash. + using namespace fum; + int x = i; +} + |