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