1 // RUN: %clang_cc1 -triple i386-pc-windows -emit-llvm -gcodeview -debug-info-kind=limited -fms-compatibility %s -x c++ -o - | FileCheck %s
3 // Ensure we emit debug info for the full definition of base classes that will
4 // be imported from a DLL. Otherwise, the debugger wouldn't be able to show the
7 // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "ImportedAfterCompletion",
8 // CHECK-NOT: DIFlagFwdDecl
11 // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "OutOfLineCtor",
12 // CHECK-SAME: DIFlagFwdDecl
15 // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "ImportedBase",
16 // CHECK-NOT: DIFlagFwdDecl
19 // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "ImportedMethod",
20 // CHECK-NOT: DIFlagFwdDecl
24 struct ImportedAfterCompletion
;
25 ImportedAfterCompletion
*force_fwd_decl
;
26 struct __declspec(dllimport
) ImportedAfterCompletion
{
27 virtual ~ImportedAfterCompletion();
30 struct OutOfLineCtor
{
35 struct __declspec(dllimport
) ImportedBase
{
40 struct DerivedFromImported
: public ImportedBase
{};
42 struct ImportedMethod
{
45 static void __declspec(dllimport
) create();
49 ImportedAfterCompletion c
;
51 DerivedFromImported d
;