xref: /llvm-project/llvm/test/DebugInfo/X86/static_member_array.ll (revision 01cee921abe924ae98027ce599d3c76ca5780a38)
1; RUN: llc %s -filetype=obj -o - | llvm-dwarfdump -v -debug-info - | FileCheck %s
2; Generated from:
3;
4; struct A {
5;   static int fully_specified;
6;   static int smem[];
7; };
8;
9; int A::fully_specified;
10; int A::smem[] = { 0, 1, 2, 3 };
11;
12; CHECK: DW_TAG_variable
13; CHECK-NEXT: DW_AT_specification{{.*}}"fully_specified"
14; CHECK-NOT:  DW_AT_type
15; CHECK: DW_TAG_structure_type
16; CHECK: DW_TAG_member
17; CHECK: DW_TAG_member
18; CHECK-NEXT:   DW_AT_name {{.*}} "smem"
19; CHECK-NEXT:   DW_AT_type {{.*}} {0x[[GENERIC:[0-9]+]]}
20;
21; CHECK: 0x[[GENERIC]]: DW_TAG_array_type
22; CHECK-NOT:  DW_TAG
23; CHECK-NOT:  NULL
24; CHECK: DW_TAG_subrange_type
25; CHECK-NOT:  DW_AT_count
26; CHECK:  NULL
27;
28; CHECK: DW_TAG_variable
29; CHECK-NEXT: DW_AT_specification {{.*}}"smem"
30; CHECK-NEXT: DW_AT_type {{.*}} {0x[[SPECIFIC:[0-9]+]]}
31;
32; CHECK: 0x[[SPECIFIC]]: DW_TAG_array_type
33; CHECK-NOT:  DW_TAG
34; CHECK-NOT:  NULL
35; CHECK: DW_TAG_subrange_type
36; CHECK-NOT:  DW_TAG
37; CHECK-NOT:  NULL
38; CHECK:  DW_AT_count {{.*}} (0x04)
39
40source_filename = "static_member_array.cpp"
41target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
42target triple = "x86_64-apple-macosx10.12.0"
43
44@_ZN1A15fully_specifiedE = global i32 0, align 4, !dbg !0
45@_ZN1A4smemE = global [4 x i32] [i32 0, i32 1, i32 2, i32 3], align 16, !dbg !6
46
47!llvm.dbg.cu = !{!2}
48!llvm.module.flags = !{!19, !20, !21}
49!llvm.ident = !{!22}
50
51!0 = distinct !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
52!1 = !DIGlobalVariable(name: "fully_specified", linkageName: "_ZN1A15fully_specifiedE", scope: !2, file: !3, line: 7, type: !9, isLocal: false, isDefinition: true, declaration: !15)
53!2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 4.0.0 (trunk 286129) (llvm/trunk 286128)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
54!3 = !DIFile(filename: "static_member_array.cpp", directory: "/Volumes/Data/radar/28706946")
55!4 = !{}
56!5 = !{!0, !6}
57!6 = distinct !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
58!7 = !DIGlobalVariable(name: "smem", linkageName: "_ZN1A4smemE", scope: !2, file: !3, line: 8, type: !8, isLocal: false, isDefinition: true, declaration: !12)
59!8 = !DICompositeType(tag: DW_TAG_array_type, baseType: !9, size: 128, elements: !10)
60!9 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
61!10 = !{!11}
62!11 = !DISubrange(count: 4)
63!12 = !DIDerivedType(tag: DW_TAG_member, name: "smem", scope: !13, file: !3, line: 4, baseType: !16, flags: DIFlagStaticMember)
64!13 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "A", file: !3, line: 1, size: 8, elements: !14, identifier: "_ZTS1A")
65!14 = !{!15, !12}
66!15 = !DIDerivedType(tag: DW_TAG_member, name: "fully_specified", scope: !13, file: !3, line: 3, baseType: !9, flags: DIFlagStaticMember)
67!16 = !DICompositeType(tag: DW_TAG_array_type, baseType: !9, elements: !17)
68!17 = !{!18}
69!18 = !DISubrange(count: -1)
70!19 = !{i32 2, !"Dwarf Version", i32 4}
71!20 = !{i32 2, !"Debug Info Version", i32 3}
72!21 = !{i32 1, !"PIC Level", i32 2}
73!22 = !{!"clang version 4.0.0 (trunk 286129) (llvm/trunk 286128)"}
74
75