mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[DebugInfo] Fix emitting offsets to CUs with -dwarf-sections-as-references=Enable.
The size of the field depends on the DWARF format, not the address size of the target. Differential Revision: https://reviews.llvm.org/D82311
This commit is contained in:
parent
8e4bd7c3f3
commit
4bfbd85d51
@ -181,7 +181,8 @@ void AsmPrinter::emitDwarfStringOffset(DwarfStringPoolEntry S) const {
|
||||
}
|
||||
|
||||
void AsmPrinter::emitDwarfOffset(const MCSymbol *Label, uint64_t Offset) const {
|
||||
emitLabelPlusOffset(Label, Offset, MAI->getCodePointerSize());
|
||||
// TODO: Support DWARF64
|
||||
emitLabelPlusOffset(Label, Offset, 4);
|
||||
}
|
||||
|
||||
void AsmPrinter::emitCallSiteOffset(const MCSymbol *Hi, const MCSymbol *Lo,
|
||||
|
27
test/DebugInfo/X86/sections-as-references-cu-offset.ll
Normal file
27
test/DebugInfo/X86/sections-as-references-cu-offset.ll
Normal file
@ -0,0 +1,27 @@
|
||||
; Test that references to CU are 4 bytes long when the target is 64-bit
|
||||
; and -dwarf-sections-as-references=Enable is specified.
|
||||
|
||||
; RUN: llc -filetype=asm -mtriple=x86_64-linux-gnu -dwarf-sections-as-references=Enable < %s \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
; CHECK: .section .debug_pubnames
|
||||
; CHECK: .long .debug_info # Offset of Compilation Unit Info
|
||||
; CHECK: .section .debug_pubtypes
|
||||
; CHECK: .long .debug_info # Offset of Compilation Unit Info
|
||||
|
||||
%struct.foo = type { i8 }
|
||||
|
||||
@f = global %struct.foo zeroinitializer, align 1, !dbg !0
|
||||
|
||||
!llvm.dbg.cu = !{!5}
|
||||
!llvm.module.flags = !{!8}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
!1 = !DIGlobalVariable(name: "f", scope: null, file: !2, line: 2, type: !3, isLocal: false, isDefinition: true)
|
||||
!2 = !DIFile(filename: "tu1.cpp", directory: "/dir")
|
||||
!3 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo", file: !2, line: 1, size: 8, align: 8, elements: !4, identifier: "_ZTS3foo")
|
||||
!4 = !{}
|
||||
!5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !6, globals: !7, imports: !4)
|
||||
!6 = !{!3}
|
||||
!7 = !{!0}
|
||||
!8 = !{i32 1, !"Debug Info Version", i32 3}
|
Loading…
Reference in New Issue
Block a user