mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
fa4635d9f3
instructions. The !llvm.loop annotations consist of pointers into the debug info, so when stripping the debug info (particularly important when it is malformed!) !llvm.loop annotations need to be stripped as well, or else the malformed debug info stays around. This patch applies the stripping to all instructions, not just terminator instructions. rdar://73687049 Differential Revision: https://reviews.llvm.org/D96181
22 lines
1.0 KiB
LLVM
22 lines
1.0 KiB
LLVM
; RUN: llvm-as -disable-output < %s -o /dev/null 2>&1 | FileCheck %s
|
|
; RUN: llvm-as < %s -o - | llvm-dis - | FileCheck %s --check-prefix=CHECK-STRIP
|
|
; CHECK: DICompileUnit not listed in llvm.dbg.cu
|
|
; CHECK: ignoring invalid debug info in
|
|
; CHECK-NOT: DICompileUnit not listed in llvm.dbg.cu
|
|
declare hidden void @g() local_unnamed_addr #1 align 2
|
|
define hidden void @f() {
|
|
tail call void @g() #2, !llvm.loop !5
|
|
ret void
|
|
}
|
|
!llvm.module.flags = !{!0, !1}
|
|
!0 = !{i32 2, !"Dwarf Version", i32 4}
|
|
!1 = !{i32 2, !"Debug Info Version", i32 3}
|
|
; CHECK-STRIP: ![[MD:.*]] = distinct !{![[MD]], !"fake loop metadata"}
|
|
!5 = distinct !{!5, !6, !6, !"fake loop metadata"}
|
|
!6 = !DILocation(line: 1325, column: 3, scope: !7)
|
|
!7 = distinct !DISubprogram(name: "f", scope: !8, file: !8, line: 1324, type: !9, scopeLine: 1324, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !11)
|
|
!8 = !DIFile(filename: "/", directory: "f.cpp")
|
|
!9 = !DISubroutineType(types: !10)
|
|
!10 = !{}
|
|
!11 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !8)
|