diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Analysis/cfg-rich-constructors.cpp | 25 | ||||
-rw-r--r-- | clang/test/Analysis/initializers-cfg-output.cpp | 15 |
2 files changed, 35 insertions, 5 deletions
diff --git a/clang/test/Analysis/cfg-rich-constructors.cpp b/clang/test/Analysis/cfg-rich-constructors.cpp index 73dd78b71c1..4672d7fdd60 100644 --- a/clang/test/Analysis/cfg-rich-constructors.cpp +++ b/clang/test/Analysis/cfg-rich-constructors.cpp @@ -126,3 +126,28 @@ void referenceVariableWithInitializer() { } } // end namespace decl_stmt + +namespace ctor_initializers { + +class D: public C { + C c1; + +public: + +// CHECK: D() +// CHECK: 1: (CXXConstructExpr, C() (Base initializer), class C) +// CHECK-NEXT: 2: C([B1.1]) (Base initializer) +// CHECK-NEXT: 3: CFGNewAllocator(C *) +// CHECK-NEXT: 4: (CXXConstructExpr, [B1.5], class C) +// CHECK-NEXT: 5: new C([B1.4]) +// CHECK-NEXT: 6: [B1.5] (CXXConstructExpr, c1([B1.5]) (Member initializer), class C) +// CHECK-NEXT: 7: c1([B1.6]) (Member initializer) + D(): C(), c1(new C()) {} + +// CHECK: D(int) +// CHECK: 1: (CXXConstructExpr, D() (Delegating initializer), class ctor_initializers::D) +// CHECK-NEXT: 2: D([B1.1]) (Delegating initializer) + D(int): D() {} +}; + +} // end namespace ctor_initializers diff --git a/clang/test/Analysis/initializers-cfg-output.cpp b/clang/test/Analysis/initializers-cfg-output.cpp index aaa1a5a6d56..8d1039ddf34 100644 --- a/clang/test/Analysis/initializers-cfg-output.cpp +++ b/clang/test/Analysis/initializers-cfg-output.cpp @@ -63,13 +63,17 @@ class TestDelegating { // CHECK: [B2 (ENTRY)] // CHECK: Succs (1): B1 // CHECK: [B1] -// CHECK: 1: (CXXConstructExpr, class A) +// WARNINGS: 1: (CXXConstructExpr, class A) +// ANALYZER: 1: (CXXConstructExpr, A() (Base initializer), class A) // CHECK: 2: A([B1.1]) (Base initializer) -// CHECK: 3: (CXXConstructExpr, class C) +// WARNINGS: 3: (CXXConstructExpr, class C) +// ANALYZER: 3: (CXXConstructExpr, C() (Base initializer), class C) // CHECK: 4: C([B1.3]) (Base initializer) -// CHECK: 5: (CXXConstructExpr, class B) +// WARNINGS: 5: (CXXConstructExpr, class B) +// ANALYZER: 5: (CXXConstructExpr, B() (Base initializer), class B) // CHECK: 6: B([B1.5]) (Base initializer) -// CHECK: 7: (CXXConstructExpr, class A) +// WARNINGS: 7: (CXXConstructExpr, class A) +// ANALYZER: 7: (CXXConstructExpr, A() (Base initializer), class A) // CHECK: 8: A([B1.7]) (Base initializer) // CHECK: 9: /*implicit*/(int)0 // CHECK: 10: i([B1.9]) (Member initializer) @@ -118,7 +122,8 @@ class TestDelegating { // CHECK: [B1] // CHECK: 1: 2 // CHECK: 2: 3 -// CHECK: 3: [B1.1], [B1.2] (CXXConstructExpr, class TestDelegating) +// WARNINGS: 3: [B1.1], [B1.2] (CXXConstructExpr, class TestDelegating) +// ANALYZER: 3: [B1.1], [B1.2] (CXXConstructExpr, TestDelegating([B1.1], [B1.2]) (Delegating initializer), class TestDelegating) // CHECK: 4: TestDelegating([B1.3]) (Delegating initializer) // CHECK: Preds (1): B2 // CHECK: Succs (1): B0 |