1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=core2 -mtriple=i686-pc-win32 -O0 < %s | FileCheck --check-prefix=X86 %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=core2 -mtriple=i686-pc-win32 -o - -O0 < %s | llvm-mc -triple=i686-pc-win32 -filetype=obj | llvm-readobj -s -sr -codeview -section-symbols | FileCheck --check-prefix=OBJ32 %s 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=core2 -mtriple=x86_64-pc-win32 -O0 < %s | FileCheck --check-prefix=X64 %s 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=core2 -mtriple=x86_64-pc-win32 -o - -O0 < %s | llvm-mc -triple=x86_64-pc-win32 -filetype=obj | llvm-readobj -s -sr -codeview -section-symbols | FileCheck --check-prefix=OBJ64 %s 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker; This LL file was generated by running clang on the following code: 7*9880d681SAndroid Build Coastguard Worker; D:\test.c: 8*9880d681SAndroid Build Coastguard Worker; 1 void g(void); 9*9880d681SAndroid Build Coastguard Worker; 2 10*9880d681SAndroid Build Coastguard Worker; 3 void f(void) { 11*9880d681SAndroid Build Coastguard Worker; 4 g(); 12*9880d681SAndroid Build Coastguard Worker; 5 } 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker; X86-LABEL: _f: 15*9880d681SAndroid Build Coastguard Worker; X86: # BB 16*9880d681SAndroid Build Coastguard Worker; X86: .cv_file 1 "D:\\test.c" 17*9880d681SAndroid Build Coastguard Worker; X86: .cv_loc 0 1 4 2 is_stmt 0 # test.c:4:2 18*9880d681SAndroid Build Coastguard Worker; X86: calll _g 19*9880d681SAndroid Build Coastguard Worker; X86: .cv_loc 0 1 5 0 # test.c:5:0 20*9880d681SAndroid Build Coastguard Worker; X86: ret 21*9880d681SAndroid Build Coastguard Worker; X86: [[END_OF_F:Lfunc_end.*]]: 22*9880d681SAndroid Build Coastguard Worker; 23*9880d681SAndroid Build Coastguard Worker; X86-LABEL: .section .debug$S,"dr" 24*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .p2align 2 25*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long 4 26*9880d681SAndroid Build Coastguard Worker; Symbol subsection 27*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long 241 28*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long [[F1_END:.*]]-[[F1_START:.*]] # 29*9880d681SAndroid Build Coastguard Worker; X86-NEXT: [[F1_START]]: 30*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] # 31*9880d681SAndroid Build Coastguard Worker; X86-NEXT: [[PROC_SEGMENT_START]]: 32*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .short 4423 33*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long 0 34*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long 0 35*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long 0 36*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long [[END_OF_F]]-_f 37*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long 0 38*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long 0 39*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .long 4098 40*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .secrel32 _f 41*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .secidx _f 42*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .byte 0 43*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .asciz "f" 44*9880d681SAndroid Build Coastguard Worker; X86-NEXT: [[PROC_SEGMENT_END]]: 45*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .short 2 46*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .short 4431 47*9880d681SAndroid Build Coastguard Worker; X86-NEXT: [[F1_END]]: 48*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .p2align 2 49*9880d681SAndroid Build Coastguard Worker; Line table 50*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .cv_linetable 0, _f, [[END_OF_F]] 51*9880d681SAndroid Build Coastguard Worker; File index to string table offset subsection 52*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .cv_filechecksums 53*9880d681SAndroid Build Coastguard Worker; String table 54*9880d681SAndroid Build Coastguard Worker; X86-NEXT: .cv_stringtable 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Worker; OBJ32: Section { 57*9880d681SAndroid Build Coastguard Worker; OBJ32: Name: .debug$S (2E 64 65 62 75 67 24 53) 58*9880d681SAndroid Build Coastguard Worker; OBJ32: Characteristics [ (0x42300040) 59*9880d681SAndroid Build Coastguard Worker; OBJ32: ] 60*9880d681SAndroid Build Coastguard Worker; OBJ32: Relocations [ 61*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: 0x2C IMAGE_REL_I386_SECREL _f 62*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: 0x30 IMAGE_REL_I386_SECTION _f 63*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: 0x44 IMAGE_REL_I386_SECREL _f 64*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: 0x48 IMAGE_REL_I386_SECTION _f 65*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ] 66*9880d681SAndroid Build Coastguard Worker; OBJ32: Subsection [ 67*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: SubSectionType: Symbols (0xF1) 68*9880d681SAndroid Build Coastguard Worker; OBJ32-NOT: ] 69*9880d681SAndroid Build Coastguard Worker; OBJ32: ProcStart { 70*9880d681SAndroid Build Coastguard Worker; OBJ32: CodeSize: 0x6 71*9880d681SAndroid Build Coastguard Worker; OBJ32: DisplayName: f 72*9880d681SAndroid Build Coastguard Worker; OBJ32: LinkageName: _f 73*9880d681SAndroid Build Coastguard Worker; OBJ32: } 74*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ProcEnd { 75*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: } 76*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ] 77*9880d681SAndroid Build Coastguard Worker; OBJ32: FunctionLineTable [ 78*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: Name: _f 79*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: Flags: 0x1 80*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: CodeSize: 0x6 81*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: FilenameSegment [ 82*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: Filename: D:\test.c 83*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: +0x0 [ 84*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: LineNumberStart: 4 85*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: LineNumberEndDelta: 0 86*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: IsStatement: No 87*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ColStart: 2 88*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ColEnd: 0 89*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ] 90*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: +0x5 [ 91*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: LineNumberStart: 5 92*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: LineNumberEndDelta: 0 93*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: IsStatement: No 94*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ColStart: 0 95*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ColEnd: 0 96*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ] 97*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ] 98*9880d681SAndroid Build Coastguard Worker; OBJ32-NEXT: ] 99*9880d681SAndroid Build Coastguard Worker 100*9880d681SAndroid Build Coastguard Worker; X64-LABEL: f: 101*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .L{{.*}}:{{$}} 102*9880d681SAndroid Build Coastguard Worker; X64: .cv_file 1 "D:\\test.c" 103*9880d681SAndroid Build Coastguard Worker; X64: .cv_loc 0 1 3 0 is_stmt 0 # test.c:3:0 104*9880d681SAndroid Build Coastguard Worker; X64: # BB 105*9880d681SAndroid Build Coastguard Worker; X64: subq $40, %rsp 106*9880d681SAndroid Build Coastguard Worker; X64: .cv_loc 0 1 4 2 # test.c:4:2 107*9880d681SAndroid Build Coastguard Worker; X64-NEXT: callq g 108*9880d681SAndroid Build Coastguard Worker; X64: .cv_loc 0 1 5 0 # test.c:5:0 109*9880d681SAndroid Build Coastguard Worker; X64: addq $40, %rsp 110*9880d681SAndroid Build Coastguard Worker; X64-NEXT: ret 111*9880d681SAndroid Build Coastguard Worker; X64: [[END_OF_F:.?Lfunc_end.*]]: 112*9880d681SAndroid Build Coastguard Worker; 113*9880d681SAndroid Build Coastguard Worker; X64-LABEL: .section .debug$S,"dr" 114*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .p2align 2 115*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 4 116*9880d681SAndroid Build Coastguard Worker; Symbol subsection 117*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 241 118*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long [[F1_END:.*]]-[[F1_START:.*]] # 119*9880d681SAndroid Build Coastguard Worker; X64-NEXT: [[F1_START]]: 120*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] # 121*9880d681SAndroid Build Coastguard Worker; X64-NEXT: [[PROC_SEGMENT_START]]: 122*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .short 4423 123*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 0 124*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 0 125*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 0 126*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long [[END_OF_F]]-f 127*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 0 128*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 0 129*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .long 4098 130*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .secrel32 f 131*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .secidx f 132*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .byte 0 133*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .asciz "f" 134*9880d681SAndroid Build Coastguard Worker; X64-NEXT: [[PROC_SEGMENT_END]]: 135*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .short 2 136*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .short 4431 137*9880d681SAndroid Build Coastguard Worker; X64-NEXT: [[F1_END]]: 138*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .p2align 2 139*9880d681SAndroid Build Coastguard Worker; Line table 140*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .cv_linetable 0, f, [[END_OF_F]] 141*9880d681SAndroid Build Coastguard Worker; File index to string table offset subsection 142*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .cv_filechecksums 143*9880d681SAndroid Build Coastguard Worker; String table 144*9880d681SAndroid Build Coastguard Worker; X64-NEXT: .cv_stringtable 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Worker; OBJ64: Section { 147*9880d681SAndroid Build Coastguard Worker; OBJ64: Name: .debug$S (2E 64 65 62 75 67 24 53) 148*9880d681SAndroid Build Coastguard Worker; OBJ64: Characteristics [ (0x42300040) 149*9880d681SAndroid Build Coastguard Worker; OBJ64: ] 150*9880d681SAndroid Build Coastguard Worker; OBJ64: Relocations [ 151*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: 0x2C IMAGE_REL_AMD64_SECREL f 152*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: 0x30 IMAGE_REL_AMD64_SECTION f 153*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: 0x44 IMAGE_REL_AMD64_SECREL f 154*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: 0x48 IMAGE_REL_AMD64_SECTION f 155*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ] 156*9880d681SAndroid Build Coastguard Worker; OBJ64: Subsection [ 157*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: SubSectionType: Symbols (0xF1) 158*9880d681SAndroid Build Coastguard Worker; OBJ64-NOT: ] 159*9880d681SAndroid Build Coastguard Worker; OBJ64: ProcStart { 160*9880d681SAndroid Build Coastguard Worker; OBJ64: CodeSize: 0xE 161*9880d681SAndroid Build Coastguard Worker; OBJ64: DisplayName: f 162*9880d681SAndroid Build Coastguard Worker; OBJ64: LinkageName: f 163*9880d681SAndroid Build Coastguard Worker; OBJ64: } 164*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ProcEnd { 165*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: } 166*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ] 167*9880d681SAndroid Build Coastguard Worker; OBJ64: FunctionLineTable [ 168*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: Name: f 169*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: Flags: 0x1 170*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: CodeSize: 0xE 171*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: FilenameSegment [ 172*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: Filename: D:\test.c 173*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: +0x0 [ 174*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: LineNumberStart: 3 175*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: LineNumberEndDelta: 0 176*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: IsStatement: No 177*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ColStart: 0 178*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ColEnd: 0 179*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ] 180*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: +0x4 [ 181*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: LineNumberStart: 4 182*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: LineNumberEndDelta: 0 183*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: IsStatement: No 184*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ColStart: 2 185*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ColEnd: 0 186*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ] 187*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: +0x9 [ 188*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: LineNumberStart: 5 189*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: LineNumberEndDelta: 0 190*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: IsStatement: No 191*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ColStart: 0 192*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ColEnd: 0 193*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ] 194*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ] 195*9880d681SAndroid Build Coastguard Worker; OBJ64-NEXT: ] 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 198*9880d681SAndroid Build Coastguard Workerdefine void @f() #0 !dbg !4 { 199*9880d681SAndroid Build Coastguard Workerentry: 200*9880d681SAndroid Build Coastguard Worker call void @g(), !dbg !12 201*9880d681SAndroid Build Coastguard Worker ret void, !dbg !13 202*9880d681SAndroid Build Coastguard Worker} 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Workerdeclare void @g() #1 205*9880d681SAndroid Build Coastguard Worker 206*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 207*9880d681SAndroid Build Coastguard Workerattributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Worker!llvm.dbg.cu = !{!0} 210*9880d681SAndroid Build Coastguard Worker!llvm.module.flags = !{!9, !10} 211*9880d681SAndroid Build Coastguard Worker!llvm.ident = !{!11} 212*9880d681SAndroid Build Coastguard Worker 213*9880d681SAndroid Build Coastguard Worker!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2) 214*9880d681SAndroid Build Coastguard Worker!1 = !DIFile(filename: "<unknown>", directory: "D:\5C") 215*9880d681SAndroid Build Coastguard Worker!2 = !{} 216*9880d681SAndroid Build Coastguard Worker!4 = distinct !DISubprogram(name: "f", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 3, file: !5, scope: !6, type: !7, variables: !2) 217*9880d681SAndroid Build Coastguard Worker!5 = !DIFile(filename: "test.c", directory: "D:\5C") 218*9880d681SAndroid Build Coastguard Worker!6 = !DIFile(filename: "test.c", directory: "D:C") 219*9880d681SAndroid Build Coastguard Worker!7 = !DISubroutineType(types: !8) 220*9880d681SAndroid Build Coastguard Worker!8 = !{null} 221*9880d681SAndroid Build Coastguard Worker!9 = !{i32 2, !"CodeView", i32 1} 222*9880d681SAndroid Build Coastguard Worker!10 = !{i32 1, !"Debug Info Version", i32 3} 223*9880d681SAndroid Build Coastguard Worker!11 = !{!"clang version 3.5 "} 224*9880d681SAndroid Build Coastguard Worker!12 = !DILocation(line: 4, column: 2, scope: !4) 225*9880d681SAndroid Build Coastguard Worker!13 = !DILocation(line: 5, scope: !4) 226