diff options
Diffstat (limited to 'test/CodeGenObjCXX/debug-info-cyclic.mm')
-rw-r--r-- | test/CodeGenObjCXX/debug-info-cyclic.mm | 29 |
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) { +} |