summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Analysis/cfg-rich-constructors.cpp25
-rw-r--r--clang/test/Analysis/initializers-cfg-output.cpp15
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
OpenPOWER on IntegriCloud