
When the host's target triple ends in `-windows-msvc`, `%llc_dwarf` contains an explicit `-windows-gnu` triple which ensures that dwarf will be used. This is useful in target-independent tests, where no triple is specified, and no target-specific features are used. However, this is not compatible with target-dependent tests (such as those in llvm/test/DebugInfo/ARM), as the command-line triple will override the triple in the LLVM IR program, causing test issues on windows. This change switches these tests to use an explicit triple, so the tests test what was expected, and there is no flakiness on windows. Fixes #58053 Differential Revision: https://reviews.llvm.org/D136066
41 lines
1.7 KiB
LLVM
41 lines
1.7 KiB
LLVM
; RUN: llc -mtriple=armv7--none-eabi -filetype=obj -mattr=+vfp2 -float-abi=hard < %s | llvm-dwarfdump -debug-info - | FileCheck %s
|
|
; RUN: llc -mtriple=armv7--none-eabi -filetype=obj -mattr=-vfp2 -float-abi=soft < %s | llvm-dwarfdump -debug-info - | FileCheck %s
|
|
|
|
; Generated by clang -O1 -g from the following C source:
|
|
; float foo(float p) {
|
|
; return p;
|
|
; }
|
|
|
|
; When using the soft-float calling convention, we have to look through a
|
|
; bitcast to find the register which contains the argument.
|
|
|
|
; CHECK: 0x{{[0-9a-f]*}}: DW_TAG_formal_parameter
|
|
; CHECK-NEXT: DW_AT_location
|
|
|
|
define float @foo(float %p) !dbg !4 {
|
|
entry:
|
|
tail call void @llvm.dbg.value(metadata float %p, metadata !9, metadata !15), !dbg !16
|
|
ret float %p, !dbg !18
|
|
}
|
|
|
|
declare void @llvm.dbg.value(metadata, metadata, metadata)
|
|
|
|
!llvm.dbg.cu = !{!0}
|
|
!llvm.module.flags = !{!10, !11}
|
|
|
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
|
|
!1 = !DIFile(filename: "test.c", directory: "")
|
|
!2 = !{}
|
|
!4 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !8)
|
|
!5 = !DISubroutineType(types: !6)
|
|
!6 = !{!7, !7}
|
|
!7 = !DIBasicType(name: "float", size: 32, align: 32, encoding: DW_ATE_float)
|
|
!8 = !{!9}
|
|
!9 = !DILocalVariable(name: "p", arg: 1, scope: !4, file: !1, line: 1, type: !7)
|
|
!10 = !{i32 2, !"Dwarf Version", i32 4}
|
|
!11 = !{i32 2, !"Debug Info Version", i32 3}
|
|
!15 = !DIExpression()
|
|
!16 = !DILocation(line: 1, column: 17, scope: !4)
|
|
!17 = !DILocation(line: 2, column: 12, scope: !4)
|
|
!18 = !DILocation(line: 2, column: 3, scope: !4)
|