summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2013-06-21 16:30:32 +0000
committerJordan Rose <jordan_rose@apple.com>2013-06-21 16:30:32 +0000
commite83cb0922b5ff08bdf3a3d6ac4a78098cb5453f0 (patch)
tree15eab17ff422ad4cbb2252824534e050db6ae743 /clang/test
parent963c5535649dc049547853ebd3ad33ea17d2ae04 (diff)
downloadbcm5719-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.cpp68
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>
OpenPOWER on IntegriCloud