summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/misc-ps-cxx0x.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Analysis/misc-ps-cxx0x.cpp')
-rw-r--r--clang/test/Analysis/misc-ps-cxx0x.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/clang/test/Analysis/misc-ps-cxx0x.cpp b/clang/test/Analysis/misc-ps-cxx0x.cpp
index 7712bb8dc3b..e1c78ed0723 100644
--- a/clang/test/Analysis/misc-ps-cxx0x.cpp
+++ b/clang/test/Analysis/misc-ps-cxx0x.cpp
@@ -87,4 +87,25 @@ void rdar11817693::operator=(const rdar11817693& src) {
operator=(dynamic_cast<const rdar11817693_BaseBase&>(src));
}
+// Test warning about null or uninitialized pointer values used as instance member
+// calls.
+class TestInstanceCall {
+public:
+ void foo() {}
+};
+
+void test_ic() {
+ TestInstanceCall *p;
+ p->foo(); // expected-warning {{Called C++ object pointer is uninitialized}}
+}
+
+void test_ic_null() {
+ TestInstanceCall *p = 0;
+ p->foo(); // expected-warning {{Called C++ object pointer is null}}
+}
+
+void test_ic_null(TestInstanceCall *p) {
+ if (!p)
+ p->foo(); // expected-warning {{Called C++ object pointer is null}}
+}
OpenPOWER on IntegriCloud