diff options
Diffstat (limited to 'test/Analysis/auto-obj-dtors-cfg-output.cpp')
-rw-r--r-- | test/Analysis/auto-obj-dtors-cfg-output.cpp | 150 |
1 files changed, 62 insertions, 88 deletions
diff --git a/test/Analysis/auto-obj-dtors-cfg-output.cpp b/test/Analysis/auto-obj-dtors-cfg-output.cpp index 4bcfccd..c877061 100644 --- a/test/Analysis/auto-obj-dtors-cfg-output.cpp +++ b/test/Analysis/auto-obj-dtors-cfg-output.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fexceptions -analyze -analyzer-checker=debug.DumpCFG -cfg-add-implicit-dtors %s 2>&1 | FileCheck %s +// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -analyze -analyzer-checker=debug.DumpCFG -cfg-add-implicit-dtors %s 2>&1 | FileCheck %s // XPASS: * class A { @@ -159,7 +159,7 @@ void test_catch_copy() { // CHECK: Predecessors (0): // CHECK: Successors (1): B1 // CHECK: [ B1 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: 3: const A &b = a; // CHECK: 4: A() @@ -175,9 +175,9 @@ void test_catch_copy() { // CHECK: Predecessors (0): // CHECK: Successors (1): B1 // CHECK: [ B1 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a[2]; -// CHECK: 3: +// CHECK: 3: // CHECK: 4: A b[0]; // CHECK: 5: [B1.2].~A() (Implicit destructor) // CHECK: Predecessors (1): B2 @@ -189,15 +189,15 @@ void test_catch_copy() { // CHECK: Predecessors (0): // CHECK: Successors (1): B1 // CHECK: [ B1 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; -// CHECK: 3: +// CHECK: 3: // CHECK: 4: A c; -// CHECK: 5: +// CHECK: 5: // CHECK: 6: A d; // CHECK: 7: [B1.6].~A() (Implicit destructor) // CHECK: 8: [B1.4].~A() (Implicit destructor) -// CHECK: 9: +// CHECK: 9: // CHECK: 10: A b; // CHECK: 11: [B1.10].~A() (Implicit destructor) // CHECK: 12: [B1.2].~A() (Implicit destructor) @@ -210,7 +210,7 @@ void test_catch_copy() { // CHECK: Predecessors (0): // CHECK: Successors (1): B3 // CHECK: [ B1 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: [B1.2].~A() (Implicit destructor) // CHECK: 4: [B3.4].~A() (Implicit destructor) @@ -224,9 +224,9 @@ void test_catch_copy() { // CHECK: Predecessors (1): B3 // CHECK: Successors (1): B0 // CHECK: [ B3 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; -// CHECK: 3: +// CHECK: 3: // CHECK: 4: A b; // CHECK: 5: UV // CHECK: T: if [B3.5] @@ -240,7 +240,7 @@ void test_catch_copy() { // CHECK: Successors (1): B7 // CHECK: [ B1 ] // CHECK: l1: -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: [B1.2].~A() (Implicit destructor) // CHECK: 4: [B6.2].~A() (Implicit destructor) @@ -248,7 +248,7 @@ void test_catch_copy() { // CHECK: Predecessors (2): B2 B3 // CHECK: Successors (1): B0 // CHECK: [ B2 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A b; // CHECK: 3: [B2.2].~A() (Implicit destructor) // CHECK: 4: [B6.4].~A() (Implicit destructor) @@ -272,16 +272,16 @@ void test_catch_copy() { // CHECK: Successors (1): B6 // CHECK: [ B6 ] // CHECK: l0: -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A b; -// CHECK: 3: +// CHECK: 3: // CHECK: 4: A a; // CHECK: 5: UV // CHECK: T: if [B6.5] // CHECK: Predecessors (2): B7 B5 // CHECK: Successors (2): B5 B4 // CHECK: [ B7 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: Predecessors (1): B8 // CHECK: Successors (1): B6 @@ -297,24 +297,23 @@ void test_catch_copy() { // CHECK: Predecessors (2): B2 B3 // CHECK: Successors (1): B0 // CHECK: [ B2 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: [B2.2].~A() (Implicit destructor) // CHECK: Predecessors (1): B4 // CHECK: Successors (1): B1 // CHECK: [ B3 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: [B3.2].~A() (Implicit destructor) // CHECK: Predecessors (1): B4 // CHECK: Successors (1): B1 // CHECK: [ B4 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: 3: a -// CHECK: 4: if ([B4.6]) -// CHECK:[B3.2]else -// CHECK:[B2.2] 5: b.operator int() +// CHECK: 4: A b = a; +// CHECK: 5: b.operator int() // CHECK: 6: [B4.5] // CHECK: T: if [B4.6] // CHECK: Predecessors (1): B5 @@ -327,14 +326,14 @@ void test_catch_copy() { // CHECK: Successors (1): B8 // CHECK: [ B1 ] // CHECK: 1: [B8.4].~A() (Implicit destructor) -// CHECK: 2: +// CHECK: 2: // CHECK: 3: A e; // CHECK: 4: [B1.3].~A() (Implicit destructor) // CHECK: 5: [B8.2].~A() (Implicit destructor) // CHECK: Predecessors (2): B2 B5 // CHECK: Successors (1): B0 // CHECK: [ B2 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A d; // CHECK: 3: [B2.2].~A() (Implicit destructor) // CHECK: 4: [B4.2].~A() (Implicit destructor) @@ -348,14 +347,14 @@ void test_catch_copy() { // CHECK: Predecessors (1): B4 // CHECK: Successors (1): B0 // CHECK: [ B4 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: UV // CHECK: T: if [B4.3] // CHECK: Predecessors (1): B8 // CHECK: Successors (2): B3 B2 // CHECK: [ B5 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A d; // CHECK: 3: [B5.2].~A() (Implicit destructor) // CHECK: 4: [B7.2].~A() (Implicit destructor) @@ -369,21 +368,17 @@ void test_catch_copy() { // CHECK: Predecessors (1): B7 // CHECK: Successors (1): B0 // CHECK: [ B7 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: UV // CHECK: T: if [B7.3] // CHECK: Predecessors (1): B8 // CHECK: Successors (2): B6 B5 // CHECK: [ B8 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: 3: a -// CHECK: 4: if ([B8.6]) { -// CHECK:[B7.2] if ([B7.3]) -// CHECK:[B6.1][B5.2]} else { -// CHECK:[B4.2] if ([B4.3]) -// CHECK:[B3.1][B2.2]} +// CHECK: 4: A b = a; // CHECK: 5: b.operator int() // CHECK: 6: [B8.5] // CHECK: T: if [B8.6] @@ -402,8 +397,8 @@ void test_catch_copy() { // CHECK: Successors (1): B0 // CHECK: [ B2 ] // CHECK: 1: a -// CHECK: 2: while ([B2.4]) -// CHECK:[B4.2] 3: b.operator int() +// CHECK: 2: A b = a; +// CHECK: 3: b.operator int() // CHECK: 4: [B2.3] // CHECK: T: while [B2.4] // CHECK: Predecessors (2): B3 B5 @@ -412,14 +407,14 @@ void test_catch_copy() { // CHECK: Predecessors (1): B4 // CHECK: Successors (1): B2 // CHECK: [ B4 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: [B4.2].~A() (Implicit destructor) // CHECK: 4: [B2.2].~A() (Implicit destructor) // CHECK: Predecessors (1): B2 // CHECK: Successors (1): B3 // CHECK: [ B5 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: Predecessors (1): B6 // CHECK: Successors (1): B2 @@ -431,7 +426,7 @@ void test_catch_copy() { // CHECK: Successors (1): B11 // CHECK: [ B1 ] // CHECK: 1: [B2.2].~A() (Implicit destructor) -// CHECK: 2: +// CHECK: 2: // CHECK: 3: A e; // CHECK: 4: [B1.3].~A() (Implicit destructor) // CHECK: 5: [B11.2].~A() (Implicit destructor) @@ -439,14 +434,7 @@ void test_catch_copy() { // CHECK: Successors (1): B0 // CHECK: [ B2 ] // CHECK: 1: a -// CHECK: 2: while ([B2.4]) -// CHECK: { -// CHECK:[B10.2] if ([B10.3]) -// CHECK: break; -// CHECK: if ([B8.1]) -// CHECK: continue; -// CHECK: if ([B6.1]) -// CHECK:[B5.1][B4.2] } +// CHECK: 2: A b = a; // CHECK: 3: b.operator int() // CHECK: 4: [B2.3] // CHECK: T: while [B2.4] @@ -456,7 +444,7 @@ void test_catch_copy() { // CHECK: Predecessors (2): B4 B7 // CHECK: Successors (1): B2 // CHECK: [ B4 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A d; // CHECK: 3: [B4.2].~A() (Implicit destructor) // CHECK: 4: [B10.2].~A() (Implicit destructor) @@ -492,14 +480,14 @@ void test_catch_copy() { // CHECK: Predecessors (1): B10 // CHECK: Successors (1): B1 // CHECK: [ B10 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: UV // CHECK: T: if [B10.3] // CHECK: Predecessors (1): B2 // CHECK: Successors (2): B9 B8 // CHECK: [ B11 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: Predecessors (1): B12 // CHECK: Successors (1): B2 @@ -515,7 +503,7 @@ void test_catch_copy() { // CHECK: Predecessors (1): B2 // CHECK: Successors (2): B3 B0 // CHECK: [ B2 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: 3: [B2.2].~A() (Implicit destructor) // CHECK: Predecessors (2): B3 B4 @@ -530,7 +518,7 @@ void test_catch_copy() { // CHECK: Predecessors (0): // CHECK: Successors (1): B11 // CHECK: [ B1 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A d; // CHECK: 3: [B1.2].~A() (Implicit destructor) // CHECK: 4: [B11.2].~A() (Implicit destructor) @@ -542,7 +530,7 @@ void test_catch_copy() { // CHECK: Predecessors (2): B3 B6 // CHECK: Successors (2): B10 B1 // CHECK: [ B3 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: [B3.2].~A() (Implicit destructor) // CHECK: 4: [B9.2].~A() (Implicit destructor) @@ -575,7 +563,7 @@ void test_catch_copy() { // CHECK: Predecessors (1): B9 // CHECK: Successors (1): B1 // CHECK: [ B9 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A b; // CHECK: 3: UV // CHECK: T: if [B9.3] @@ -585,7 +573,7 @@ void test_catch_copy() { // CHECK: Predecessors (1): B2 // CHECK: Successors (1): B9 // CHECK: [ B11 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: Predecessors (1): B12 // CHECK: Successors (1): B9 @@ -601,16 +589,16 @@ void test_catch_copy() { // CHECK: Predecessors (2): B3 B2 // CHECK: Successors (1): B0 // CHECK: [ B2 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: 3: a -// CHECK: 4: switch ([B2.5]) -// CHECK:[B3.2] 5: b.operator int() +// CHECK: 4: A b = a; +// CHECK: 5: b.operator int() // CHECK: T: switch [B2.5] // CHECK: Predecessors (1): B4 // CHECK: Successors (1): B1 // CHECK: [ B3 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: [B3.2].~A() (Implicit destructor) // CHECK: Predecessors (0): @@ -623,26 +611,17 @@ void test_catch_copy() { // CHECK: Successors (1): B2 // CHECK: [ B1 ] // CHECK: 1: [B2.4].~A() (Implicit destructor) -// CHECK: 2: +// CHECK: 2: // CHECK: 3: A g; // CHECK: 4: [B1.3].~A() (Implicit destructor) // CHECK: 5: [B2.2].~A() (Implicit destructor) // CHECK: Predecessors (3): B3 B7 B2 // CHECK: Successors (1): B0 // CHECK: [ B2 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: 3: a -// CHECK: 4: switch ([B2.5]) { -// CHECK: case 0: -// CHECK: { -// CHECK:[B8.2] if ([B8.3]) -// CHECK: break; -// CHECK: if ([B6.1]) -// CHECK:[B5.1][B4.2] } -// CHECK: case 1: -// CHECK: break; -// CHECK:} +// CHECK: 4: A b = a; // CHECK: 5: b.operator int() // CHECK: T: switch [B2.5] // CHECK: Predecessors (1): B9 @@ -654,7 +633,7 @@ void test_catch_copy() { // CHECK: Predecessors (2): B2 B4 // CHECK: Successors (1): B1 // CHECK: [ B4 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A f; // CHECK: 3: [B4.2].~A() (Implicit destructor) // CHECK: 4: [B8.2].~A() (Implicit destructor) @@ -679,7 +658,7 @@ void test_catch_copy() { // CHECK: Successors (1): B1 // CHECK: [ B8 ] // CHECK: case 0: -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: UV // CHECK: T: if [B8.3] @@ -698,8 +677,8 @@ void test_catch_copy() { // CHECK: Successors (1): B0 // CHECK: [ B2 ] // CHECK: 1: a -// CHECK: 2: for (A a; [B2.4];) -// CHECK:[B4.2] 3: b.operator int() +// CHECK: 2: A b = a; +// CHECK: 3: b.operator int() // CHECK: 4: [B2.3] // CHECK: T: for (...; [B2.4]; ) // CHECK: Predecessors (2): B3 B5 @@ -709,13 +688,13 @@ void test_catch_copy() { // CHECK: Predecessors (1): B4 // CHECK: Successors (1): B2 // CHECK: [ B4 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A c; // CHECK: 3: [B4.2].~A() (Implicit destructor) // CHECK: Predecessors (1): B2 // CHECK: Successors (1): B3 // CHECK: [ B5 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; // CHECK: Predecessors (1): B6 // CHECK: Successors (1): B2 @@ -728,7 +707,7 @@ void test_catch_copy() { // CHECK: [ B1 ] // CHECK: 1: [B2.2].~A() (Implicit destructor) // CHECK: 2: [B11.4].~A() (Implicit destructor) -// CHECK: 3: +// CHECK: 3: // CHECK: 4: A f; // CHECK: 5: [B1.4].~A() (Implicit destructor) // CHECK: 6: [B11.2].~A() (Implicit destructor) @@ -736,13 +715,7 @@ void test_catch_copy() { // CHECK: Successors (1): B0 // CHECK: [ B2 ] // CHECK: 1: b -// CHECK: 2: for (A b; [B2.4];) { -// CHECK:[B10.2] if ([B10.3]) -// CHECK: break; -// CHECK: if ([B8.1]) -// CHECK: continue; -// CHECK: if ([B6.1]) -// CHECK:[B5.1][B4.2]} +// CHECK: 2: A c = b; // CHECK: 3: c.operator int() // CHECK: 4: [B2.3] // CHECK: T: for (...; [B2.4]; ) @@ -753,7 +726,7 @@ void test_catch_copy() { // CHECK: Predecessors (2): B4 B7 // CHECK: Successors (1): B2 // CHECK: [ B4 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A e; // CHECK: 3: [B4.2].~A() (Implicit destructor) // CHECK: 4: [B10.2].~A() (Implicit destructor) @@ -788,16 +761,16 @@ void test_catch_copy() { // CHECK: Predecessors (1): B10 // CHECK: Successors (1): B1 // CHECK: [ B10 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A d; // CHECK: 3: UV // CHECK: T: if [B10.3] // CHECK: Predecessors (1): B2 // CHECK: Successors (2): B9 B8 // CHECK: [ B11 ] -// CHECK: 1: +// CHECK: 1: // CHECK: 2: A a; -// CHECK: 3: +// CHECK: 3: // CHECK: 4: A b; // CHECK: Predecessors (1): B12 // CHECK: Successors (1): B2 @@ -833,3 +806,4 @@ void test_catch_copy() { // CHECK: [ B0 (EXIT) ] // CHECK: Predecessors (3): B2 B1 B3 // CHECK: Successors (0): + |