summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2011-02-14 17:00:16 +0000
committerTed Kremenek <kremenek@apple.com>2011-02-14 17:00:16 +0000
commit9909df3b3afe294f81a935edf7a0ffea15834c39 (patch)
tree9283571d3e2deea1b726b327f4a9371a5faffa37
parent85bc995c5bdd5c5b2a7b12284ea35d6e4deb6ceb (diff)
downloadbcm5719-llvm-9909df3b3afe294f81a935edf7a0ffea15834c39.tar.gz
bcm5719-llvm-9909df3b3afe294f81a935edf7a0ffea15834c39.zip
Handle 'UsingDirective' in CFGRecStmtDeclVisitor.
llvm-svn: 125491
-rw-r--r--clang/include/clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h2
-rw-r--r--clang/test/Analysis/misc-ps-region-store.cpp15
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;
+}
+
OpenPOWER on IntegriCloud