1f4a2713aSLionel Sambuc // RUN: %clang -flimit-debug-info -emit-llvm -g -S %s -o - | FileCheck %s 2f4a2713aSLionel Sambuc 3f4a2713aSLionel Sambuc // CHECK: ; [ DW_TAG_class_type ] [A] {{.*}} [def] 4f4a2713aSLionel Sambuc class A { 5f4a2713aSLionel Sambuc public: 6f4a2713aSLionel Sambuc int z; 7f4a2713aSLionel Sambuc }; 8f4a2713aSLionel Sambuc foo(A * x)9f4a2713aSLionel SambucA *foo (A* x) { 10f4a2713aSLionel Sambuc A *a = new A(*x); 11f4a2713aSLionel Sambuc return a; 12f4a2713aSLionel Sambuc } 13f4a2713aSLionel Sambuc 14*0a6a1f1dSLionel Sambuc // CHECK: ; [ DW_TAG_class_type ] [B] {{.*}} [def] 15f4a2713aSLionel Sambuc 16f4a2713aSLionel Sambuc class B { 17f4a2713aSLionel Sambuc public: 18f4a2713aSLionel Sambuc int y; 19f4a2713aSLionel Sambuc }; 20f4a2713aSLionel Sambuc 21f4a2713aSLionel Sambuc extern int bar(B *b); baz(B * b)22f4a2713aSLionel Sambucint baz(B *b) { 23f4a2713aSLionel Sambuc return bar(b); 24f4a2713aSLionel Sambuc } 25f4a2713aSLionel Sambuc 26f4a2713aSLionel Sambuc 27f4a2713aSLionel Sambuc // CHECK: ; [ DW_TAG_structure_type ] [C] {{.*}} [decl] 28f4a2713aSLionel Sambuc 29f4a2713aSLionel Sambuc struct C { 30f4a2713aSLionel Sambuc }; 31f4a2713aSLionel Sambuc 32f4a2713aSLionel Sambuc C (*x)(C); 33