blob: 63f6bda3a2323b6c3684dc4691180201a12f0f1e [file] [log] [blame]
David Blaikieac00b792013-08-01 20:57:40 +00001// RUN: %clang -flimit-debug-info -emit-llvm -g -S %s -o - | FileCheck %s
Devang Patel3ee36af2011-02-22 20:55:26 +00002
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -07003// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "A"
4// CHECK-NOT: DIFlagFwdDecl
5// CHECK-SAME: ){{$}}
Devang Patel3ee36af2011-02-22 20:55:26 +00006class A {
7public:
8 int z;
9};
10
Eli Friedman22cfaf52012-02-16 22:45:48 +000011A *foo (A* x) {
12 A *a = new A(*x);
Devang Patel3ee36af2011-02-22 20:55:26 +000013 return a;
14}
15
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -070016// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "B"
17// CHECK-NOT: DIFlagFwdDecl
18// CHECK-SAME: ){{$}}
Eric Christopher6a15bde2013-05-16 00:45:20 +000019
20class B {
21public:
22 int y;
23};
24
25extern int bar(B *b);
26int baz(B *b) {
27 return bar(b);
28}
29
David Blaikie55a2b3d2013-08-21 23:23:07 +000030
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -070031// CHECK: !MDCompositeType(tag: DW_TAG_structure_type, name: "C"
32// CHECK-SAME: flags: DIFlagFwdDecl
David Blaikie55a2b3d2013-08-21 23:23:07 +000033
34struct C {
35};
36
37C (*x)(C);