diff options
| author | Jordan Rose <jordan_rose@apple.com> | 2012-08-03 23:08:36 +0000 |
|---|---|---|
| committer | Jordan Rose <jordan_rose@apple.com> | 2012-08-03 23:08:36 +0000 |
| commit | 86bedb0de00508c872dbf9f1b4835efd64bae2fd (patch) | |
| tree | c131caead6bbb18a099ac2ef1758a1795a51f1fe | |
| parent | 24bc514c0c74cbc43bb7186d777cedcd050f3394 (diff) | |
| download | bcm5719-llvm-86bedb0de00508c872dbf9f1b4835efd64bae2fd.tar.gz bcm5719-llvm-86bedb0de00508c872dbf9f1b4835efd64bae2fd.zip | |
[analyzer] Add a test for copy-constructor inlining.
llvm-svn: 161274
| -rw-r--r-- | clang/test/Analysis/ctor-inlining.mm | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/clang/test/Analysis/ctor-inlining.mm b/clang/test/Analysis/ctor-inlining.mm index 586c09d3048..54d51b46dc5 100644 --- a/clang/test/Analysis/ctor-inlining.mm +++ b/clang/test/Analysis/ctor-inlining.mm @@ -1,4 +1,6 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core -fobjc-arc -cfg-add-implicit-dtors -Wno-null-dereference -verify %s +// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -fobjc-arc -cfg-add-implicit-dtors -Wno-null-dereference -verify %s + +void clang_analyzer_eval(bool); struct Wrapper { __strong id obj; @@ -9,3 +11,31 @@ void test() { // force a diagnostic *(char *)0 = 1; // expected-warning{{Dereference of null pointer}} } + + +struct IntWrapper { + int x; +}; + +void testCopyConstructor() { + IntWrapper a; + a.x = 42; + + IntWrapper b(a); + clang_analyzer_eval(b.x == 42); // expected-warning{{TRUE}} +} + +struct NonPODIntWrapper { + int x; + + virtual int get(); +}; + +void testNonPODCopyConstructor() { + NonPODIntWrapper a; + a.x = 42; + + NonPODIntWrapper b(a); + clang_analyzer_eval(b.x == 42); // expected-warning{{TRUE}} +} + |

