diff options
author | Manman Ren <mren@apple.com> | 2013-03-12 18:27:15 +0000 |
---|---|---|
committer | Manman Ren <mren@apple.com> | 2013-03-12 18:27:15 +0000 |
commit | 14a029d9f3cc777c0c0488f4919071518d0fc003 (patch) | |
tree | 3856d9d92112aa39e13ee658fb1972dd47c019ce /llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | |
parent | 61046a97277fead81c3d57e24cbc842763cd7c8f (diff) | |
download | bcm5719-llvm-14a029d9f3cc777c0c0488f4919071518d0fc003.tar.gz bcm5719-llvm-14a029d9f3cc777c0c0488f4919071518d0fc003.zip |
Debug Info: use DW_FORM_ref_addr instead of DW_FORM_ref4 if the referenced DIE
belongs to a different compile unit.
DW_FORM_ref_addr should be used for cross compile-unit reference.
When compiling a large application, we got a dwarfdump verification error where
abstract_origin points to nowhere.
This error can't be reproduced on any testing case in MultiSource.
We may have other cases where we use DW_FORM_ref4 unconditionally.
rdar://problem/13370501
llvm-svn: 176882
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index 01f15e52e88..1c743c2414e 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -35,7 +35,7 @@ using namespace llvm; CompileUnit::CompileUnit(unsigned UID, unsigned L, DIE *D, AsmPrinter *A, DwarfDebug *DW, DwarfUnits *DWU) : UniqueID(UID), Language(L), CUDie(D), Asm(A), DD(DW), DU(DWU), - IndexTyDie(0) { + IndexTyDie(0), DebugInfoOffset(0) { DIEIntegerOne = new (DIEValueAllocator) DIEInteger(1); } |