forked from OSchip/llvm-project
[DWARF] Unclamp line table version on Darwin for v5 and later.
On Darwin we pin the DWARF line tables to version 2. Stop doing so for DWARF v5 and later. Differential revision: https://reviews.llvm.org/D49381 llvm-svn: 339288
This commit is contained in:
parent
9ff024a54f
commit
49ff4d9041
|
@ -462,11 +462,14 @@ MCDwarfLineTableHeader::Emit(MCStreamer *MCOS, MCDwarfLineTableParams Params,
|
|||
emitAbsValue(*MCOS,
|
||||
MakeStartMinusEndExpr(*MCOS, *LineStartSym, *LineEndSym, 4), 4);
|
||||
|
||||
// Next 2 bytes is the Version.
|
||||
// FIXME: On Darwin we still default to V2.
|
||||
unsigned LineTableVersion = context.getDwarfVersion();
|
||||
if (context.getObjectFileInfo()->getTargetTriple().isOSDarwin())
|
||||
|
||||
// On Darwin we default to v2 for anything before DWARF v5.
|
||||
if (context.getObjectFileInfo()->getTargetTriple().isOSDarwin() &&
|
||||
LineTableVersion < 5)
|
||||
LineTableVersion = 2;
|
||||
|
||||
// Next 2 bytes is the Version.
|
||||
MCOS->EmitIntValue(LineTableVersion, 2);
|
||||
|
||||
// Keep track of the bytes between the very start and where the header length
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
; MD5 checksums provided by IR should be passed through to asm.
|
||||
; They'll be emitted to an object file only for DWARF 5 or later.
|
||||
|
||||
; Darwin clamps the line table at DWARF v2 so XFAIL this test.
|
||||
; XFAIL: darwin
|
||||
;
|
||||
; Note that on Darwin for DWARF 4 or earlier, the line table version is clamped
|
||||
; to version 2. However that doesn't affect the output checked in this test.
|
||||
|
||||
; REQUIRES: object-emission
|
||||
; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-4
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
; Source text provided by IR should be passed through to asm.
|
||||
; It is emitted to an object file only for DWARF 5 or later.
|
||||
|
||||
; Darwin clamps the line table at DWARF v2 so XFAIL this test.
|
||||
; XFAIL: darwin
|
||||
;
|
||||
; Note that on Darwin for DWARF 4 or earlier, the line table version is clamped
|
||||
; to version 2. However that doesn't affect the output checked in this test.
|
||||
|
||||
; REQUIRES: object-emission
|
||||
; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-4
|
||||
|
|
|
@ -4,8 +4,6 @@
|
|||
# RUN: llvm-mc -dwarf-version 4 %s -filetype=asm -o - 2>&1 | FileCheck %s --check-prefix=WARN
|
||||
# RUN: llvm-mc -dwarf-version 5 %s -filetype=obj -o - | llvm-dwarfdump -debug-line - | FileCheck %s --check-prefixes=CHECK,CHECK-5
|
||||
# RUN: llvm-mc -dwarf-version 5 %s -filetype=asm -o - | FileCheck %s --check-prefixes=ASM,ASM-5
|
||||
# Darwin is stuck on DWARF v2.
|
||||
# XFAIL: darwin
|
||||
.file 0 "/test" "root.cpp"
|
||||
.file 1 "/include" "header.h"
|
||||
.file 2 "/test" "root.cpp"
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
# REQUIRES: default_triple
|
||||
# RUN: llvm-mc -dwarf-version 5 %s -filetype=obj -o - | llvm-dwarfdump -debug-line - | FileCheck %s
|
||||
# RUN: not llvm-mc -dwarf-version 4 %s -filetype=asm -o - 2>&1 | FileCheck %s -check-prefix=ERR
|
||||
# Darwin line table is stuck on DWARF v2.
|
||||
# XFAIL: darwin
|
||||
# Show that ".loc 0" works in DWARF v5, gets an error for earlier versions.
|
||||
.file 0 "root.cpp"
|
||||
.file 1 "header.h"
|
||||
|
|
Loading…
Reference in New Issue