summaryrefslogtreecommitdiffstats
path: root/test/CodeGenObjCXX/debug-info-cyclic.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenObjCXX/debug-info-cyclic.mm')
-rw-r--r--test/CodeGenObjCXX/debug-info-cyclic.mm29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/CodeGenObjCXX/debug-info-cyclic.mm b/test/CodeGenObjCXX/debug-info-cyclic.mm
new file mode 100644
index 0000000..8983fe5
--- /dev/null
+++ b/test/CodeGenObjCXX/debug-info-cyclic.mm
@@ -0,0 +1,29 @@
+// RUN: %clang_cc1 -triple x86_64-apple-darwin -g -emit-llvm %s -o - | FileCheck %s
+
+struct B {
+// CHECK: ![[B:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "B"
+// CHECK-SAME: line: [[@LINE-2]],
+// CHECK-SAME: size: 8, align: 8,
+// CHECK-NOT: offset:
+// CHECK-NOT: DIFlagFwdDecl
+// CHECK-SAME: elements: ![[BMEMBERS:[0-9]+]]
+// CHECK: ![[BMEMBERS]] = !{![[BB:[0-9]+]]}
+ B(struct A *);
+// CHECK: ![[BB]] = !DISubprogram(name: "B", scope: ![[B]]
+// CHECK-SAME: line: [[@LINE-2]],
+// CHECK-SAME: type: ![[TY:[0-9]+]],
+// CHECK: ![[TY]] = !DISubroutineType(types: ![[ARGS:[0-9]+]])
+// CHECK: ![[ARGS]] = !{null, ![[THIS:[0-9]+]], !{{[^,]+}}}
+// CHECK: ![[THIS]] = !DIDerivedType(tag: DW_TAG_pointer_type,
+// CHECK-SAME: baseType: ![[B]]
+};
+
+struct C {
+ B b;
+ C(struct A *);
+ virtual ~C();
+};
+
+C::C(struct A *a)
+ : b(a) {
+}
OpenPOWER on IntegriCloud