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