xref: /aosp_15_r20/external/clang/test/CodeGenCXX/debug-info-ms-abi.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=i686-pc-windows-msvc -debug-info-kind=limited -emit-llvm -o - | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // Tests that certain miscellaneous features work in the MS ABI.
4*67e74705SXin Li 
5*67e74705SXin Li struct Foo {
6*67e74705SXin Li   virtual void f();
7*67e74705SXin Li   virtual void g();
8*67e74705SXin Li   virtual void h();
9*67e74705SXin Li   struct Nested {};
10*67e74705SXin Li };
11*67e74705SXin Li Foo f;
12*67e74705SXin Li Foo::Nested n;
13*67e74705SXin Li 
14*67e74705SXin Li // CHECK: ![[Foo:[^ ]*]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Foo",
15*67e74705SXin Li // CHECK-SAME: identifier: ".?AUFoo@@"
16*67e74705SXin Li 
17*67e74705SXin Li // CHECK: !DISubprogram(name: "f",
18*67e74705SXin Li // CHECK-SAME: containingType: ![[Foo]], virtuality: DW_VIRTUALITY_virtual, virtualIndex: 0,
19*67e74705SXin Li // CHECK-SAME: flags: DIFlagPrototyped | DIFlagIntroducedVirtual,
20*67e74705SXin Li 
21*67e74705SXin Li // CHECK: !DISubprogram(name: "g",
22*67e74705SXin Li // CHECK-SAME: containingType: ![[Foo]], virtuality: DW_VIRTUALITY_virtual, virtualIndex: 1,
23*67e74705SXin Li // CHECK-SAME: flags: DIFlagPrototyped | DIFlagIntroducedVirtual,
24*67e74705SXin Li 
25*67e74705SXin Li // CHECK: !DISubprogram(name: "h",
26*67e74705SXin Li // CHECK-SAME: containingType: ![[Foo]], virtuality: DW_VIRTUALITY_virtual, virtualIndex: 2,
27*67e74705SXin Li // CHECK-SAME: flags: DIFlagPrototyped | DIFlagIntroducedVirtual,
28*67e74705SXin Li 
29*67e74705SXin Li // CHECK: distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Nested",
30*67e74705SXin Li // CHECK-SAME: identifier: ".?AUNested@Foo@@"
31