mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:43:36 +01:00
Bitcode: Set LastDL after writing DebugLocs
Somehow I dropped this in r233585, and we haven't had `DEBUG_LOC_AGAIN` records since. Add it back. Also tests that the output assembly looks okay. Fixes PR23436. llvm-svn: 236661
This commit is contained in:
parent
f60fb37d5f
commit
344f7726b1
@ -2135,6 +2135,8 @@ static void WriteFunction(const Function &F, ValueEnumerator &VE,
|
||||
Vals.push_back(VE.getMetadataOrNullID(DL->getInlinedAt()));
|
||||
Stream.EmitRecord(bitc::FUNC_CODE_DEBUG_LOC, Vals);
|
||||
Vals.clear();
|
||||
|
||||
LastDL = DL;
|
||||
}
|
||||
|
||||
// Emit names for all the instructions etc.
|
||||
|
36
test/Bitcode/debug-loc-again.ll
Normal file
36
test/Bitcode/debug-loc-again.ll
Normal file
@ -0,0 +1,36 @@
|
||||
; RUN: llvm-as < %s | llvm-bcanalyzer -dump | FileCheck %s -check-prefix=BC
|
||||
; PR23436: Actually emit DEBUG_LOC_AGAIN records.
|
||||
|
||||
; BC: <DEBUG_LOC op
|
||||
; BC: <DEBUG_LOC_AGAIN/>
|
||||
; BC: <DEBUG_LOC op
|
||||
; BC: <DEBUG_LOC_AGAIN/>
|
||||
|
||||
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
|
||||
; RUN: verify-uselistorder %s
|
||||
; Check that this round-trips correctly.
|
||||
|
||||
define void @foo() {
|
||||
entry:
|
||||
%a = add i32 0, 0, !dbg !3
|
||||
%b = add i32 0, 1, !dbg !3
|
||||
%c = add i32 0, 2, !dbg !4
|
||||
ret void, !dbg !4
|
||||
}
|
||||
|
||||
; CHECK-LABEL: entry:
|
||||
; CHECK-NEXT: %a = add i32 0, 0, !dbg ![[LINE1:[0-9]+]]
|
||||
; CHECK-NEXT: %b = add i32 0, 1, !dbg ![[LINE1]]
|
||||
; CHECK-NEXT: %c = add i32 0, 2, !dbg ![[LINE2:[0-9]+]]
|
||||
; CHECK-NEXT: ret void, !dbg ![[LINE2]]
|
||||
; CHECK: ![[LINE1]] = !DILocation(line: 1,
|
||||
; CHECK: ![[LINE2]] = !DILocation(line: 2,
|
||||
|
||||
!llvm.module.flags = !{!0}
|
||||
|
||||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = !DICompileUnit(language: DW_LANG_C99, file: !DIFile(filename: "f", directory: "/d"),
|
||||
subprograms: !{!2})
|
||||
!2 = !DISubprogram(name: "foo")
|
||||
!3 = !DILocation(line: 1, scope: !2)
|
||||
!4 = !DILocation(line: 2, scope: !2)
|
Loading…
Reference in New Issue
Block a user