diff options
| author | Jordan Rose <jordan_rose@apple.com> | 2013-06-21 16:30:32 +0000 |
|---|---|---|
| committer | Jordan Rose <jordan_rose@apple.com> | 2013-06-21 16:30:32 +0000 |
| commit | e83cb0922b5ff08bdf3a3d6ac4a78098cb5453f0 (patch) | |
| tree | 15eab17ff422ad4cbb2252824534e050db6ae743 /clang/test | |
| parent | 963c5535649dc049547853ebd3ad33ea17d2ae04 (diff) | |
| download | bcm5719-llvm-e83cb0922b5ff08bdf3a3d6ac4a78098cb5453f0.tar.gz bcm5719-llvm-e83cb0922b5ff08bdf3a3d6ac4a78098cb5453f0.zip | |
Revert "[analyzer] Handle zeroing CXXConstructExprs."
Per review from Anna, this really should have been two commits, and besides
it's causing problems on our internal buildbot. Reverting until these have
been worked out.
This reverts r184511 / 98123284826bb4ce422775563ff1a01580ec5766.
llvm-svn: 184561
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Analysis/ctor-inlining.mm (renamed from clang/test/Analysis/ctor.mm) | 75 | ||||
| -rw-r--r-- | clang/test/Analysis/inlining/path-notes.cpp | 68 |
2 files changed, 68 insertions, 75 deletions
diff --git a/clang/test/Analysis/ctor.mm b/clang/test/Analysis/ctor-inlining.mm index 37334fe896e..8cdb005968c 100644 --- a/clang/test/Analysis/ctor.mm +++ b/clang/test/Analysis/ctor-inlining.mm @@ -500,78 +500,3 @@ namespace ArrayMembers { clang_analyzer_eval(c.values[2].x == 3); // expected-warning{{UNKNOWN}} } }; - -namespace ZeroInitialization { - struct raw_pair { - int p1; - int p2; - }; - - void testVarDecl() { - raw_pair p{}; - clang_analyzer_eval(p.p1 == 0); // expected-warning{{TRUE}} - clang_analyzer_eval(p.p2 == 0); // expected-warning{{TRUE}} - } - - void testTemporary() { - clang_analyzer_eval(raw_pair().p1 == 0); // expected-warning{{TRUE}} - clang_analyzer_eval(raw_pair().p2 == 0); // expected-warning{{TRUE}} - } - - void testArray() { - raw_pair p[2] = {}; - clang_analyzer_eval(p[0].p1 == 0); // expected-warning{{TRUE}} - clang_analyzer_eval(p[0].p2 == 0); // expected-warning{{TRUE}} - clang_analyzer_eval(p[1].p1 == 0); // expected-warning{{TRUE}} - clang_analyzer_eval(p[1].p2 == 0); // expected-warning{{TRUE}} - } - - void testNew() { - // FIXME: Pending proper implementation of constructors for 'new'. - raw_pair *pp = new raw_pair(); - clang_analyzer_eval(pp->p1 == 0); // expected-warning{{UNKNOWN}} - clang_analyzer_eval(pp->p2 == 0); // expected-warning{{UNKNOWN}} - } - - void testArrayNew() { - // FIXME: Pending proper implementation of constructors for 'new[]'. - raw_pair *p = new raw_pair[2](); - clang_analyzer_eval(p[0].p1 == 0); // expected-warning{{UNKNOWN}} - clang_analyzer_eval(p[0].p2 == 0); // expected-warning{{UNKNOWN}} - clang_analyzer_eval(p[1].p1 == 0); // expected-warning{{UNKNOWN}} - clang_analyzer_eval(p[1].p2 == 0); // expected-warning{{UNKNOWN}} - } - - struct initializing_pair { - public: - int x; - raw_pair y; - initializing_pair() : x(), y() {} - }; - - void testFieldInitializers() { - initializing_pair p; - clang_analyzer_eval(p.x == 0); // expected-warning{{TRUE}} - clang_analyzer_eval(p.y.p1 == 0); // expected-warning{{TRUE}} - clang_analyzer_eval(p.y.p2 == 0); // expected-warning{{TRUE}} - } - - struct subclass : public raw_pair { - subclass() = default; - }; - - void testSubclass() { - subclass p; - clang_analyzer_eval(p.p1 == 0); // expected-warning{{garbage}} - } - - struct initializing_subclass : public raw_pair { - initializing_subclass() : raw_pair() {} - }; - - void testInitializingSubclass() { - initializing_subclass p; - clang_analyzer_eval(p.p1 == 0); // expected-warning{{TRUE}} - clang_analyzer_eval(p.p2 == 0); // expected-warning{{TRUE}} - } -} diff --git a/clang/test/Analysis/inlining/path-notes.cpp b/clang/test/Analysis/inlining/path-notes.cpp index 29637f2c8bb..810c150e4c3 100644 --- a/clang/test/Analysis/inlining/path-notes.cpp +++ b/clang/test/Analysis/inlining/path-notes.cpp @@ -300,6 +300,40 @@ int callGenerateNoteOnDefaultArgument(int o) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> +// CHECK-NEXT: <key>line</key><integer>31</integer> +// CHECK-NEXT: <key>col</key><integer>7</integer> +// CHECK-NEXT: <key>file</key><integer>0</integer> +// CHECK-NEXT: </dict> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>line</key><integer>31</integer> +// CHECK-NEXT: <key>col</key><integer>7</integer> +// CHECK-NEXT: <key>file</key><integer>0</integer> +// CHECK-NEXT: </dict> +// CHECK-NEXT: </array> +// CHECK-NEXT: </dict> +// CHECK-NEXT: </array> +// CHECK-NEXT: </dict> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>kind</key><string>control</string> +// CHECK-NEXT: <key>edges</key> +// CHECK-NEXT: <array> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>start</key> +// CHECK-NEXT: <array> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>line</key><integer>31</integer> +// CHECK-NEXT: <key>col</key><integer>7</integer> +// CHECK-NEXT: <key>file</key><integer>0</integer> +// CHECK-NEXT: </dict> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>line</key><integer>31</integer> +// CHECK-NEXT: <key>col</key><integer>7</integer> +// CHECK-NEXT: <key>file</key><integer>0</integer> +// CHECK-NEXT: </dict> +// CHECK-NEXT: </array> +// CHECK-NEXT: <key>end</key> +// CHECK-NEXT: <array> +// CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>32</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> @@ -853,6 +887,40 @@ int callGenerateNoteOnDefaultArgument(int o) { // CHECK-NEXT: <key>end</key> // CHECK-NEXT: <array> // CHECK-NEXT: <dict> +// CHECK-NEXT: <key>line</key><integer>44</integer> +// CHECK-NEXT: <key>col</key><integer>5</integer> +// CHECK-NEXT: <key>file</key><integer>0</integer> +// CHECK-NEXT: </dict> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>line</key><integer>44</integer> +// CHECK-NEXT: <key>col</key><integer>13</integer> +// CHECK-NEXT: <key>file</key><integer>0</integer> +// CHECK-NEXT: </dict> +// CHECK-NEXT: </array> +// CHECK-NEXT: </dict> +// CHECK-NEXT: </array> +// CHECK-NEXT: </dict> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>kind</key><string>control</string> +// CHECK-NEXT: <key>edges</key> +// CHECK-NEXT: <array> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>start</key> +// CHECK-NEXT: <array> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>line</key><integer>44</integer> +// CHECK-NEXT: <key>col</key><integer>5</integer> +// CHECK-NEXT: <key>file</key><integer>0</integer> +// CHECK-NEXT: </dict> +// CHECK-NEXT: <dict> +// CHECK-NEXT: <key>line</key><integer>44</integer> +// CHECK-NEXT: <key>col</key><integer>13</integer> +// CHECK-NEXT: <key>file</key><integer>0</integer> +// CHECK-NEXT: </dict> +// CHECK-NEXT: </array> +// CHECK-NEXT: <key>end</key> +// CHECK-NEXT: <array> +// CHECK-NEXT: <dict> // CHECK-NEXT: <key>line</key><integer>46</integer> // CHECK-NEXT: <key>col</key><integer>3</integer> // CHECK-NEXT: <key>file</key><integer>0</integer> |

