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