1 // RUN: %clang -flimit-debug-info -emit-llvm -g -S %s -o - | FileCheck %s
2 // RUN: %clang -flimit-debug-info -emit-llvm -g -S %s -o - | FileCheck --check-prefix=CHECK-C %s
3
4 // CHECK: !DICompositeType(tag: DW_TAG_class_type, name: "A"
5 // CHECK-NOT: DIFlagFwdDecl
6 // CHECK-SAME: ){{$}}
7 class A {
8 public:
9 int z;
10 };
11
foo(A * x)12 A *foo (A* x) {
13 A *a = new A(*x);
14 return a;
15 }
16
17 // CHECK: !DICompositeType(tag: DW_TAG_class_type, name: "B"
18 // CHECK-SAME: flags: DIFlagFwdDecl
19
20 class B {
21 public:
22 int y;
23 };
24
25 extern int bar(B *b);
baz(B * b)26 int baz(B *b) {
27 return bar(b);
28 }
29
30
31 // CHECK-C: !DICompositeType(tag: DW_TAG_structure_type, name: "C"
32 // CHECK-C-SAME: flags: DIFlagFwdDecl
33
34 struct C {
35 };
36
37 C (*x)(C);
38