mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Don't use EmitAbsValue with symbol references.
The function exists to force an expression to be absolute, but there it is not possible to force a symbol reference since a = b .long a means something else. This is an alternative fix for pr9951 that uses an assert. It then deletes the old pr9951 test that was testing nothing already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204399 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -619,7 +619,7 @@ static void EmitGenDwarfAranges(MCStreamer *MCOS,
|
||||
context.getGenDwarfSectionStartSym(), MCSymbolRefExpr::VK_None, context);
|
||||
const MCExpr *Size = MakeStartMinusEndExpr(*MCOS,
|
||||
*context.getGenDwarfSectionStartSym(), *SectionEndSym, 0);
|
||||
MCOS->EmitAbsValue(Addr, AddrSize);
|
||||
MCOS->EmitValue(Addr, AddrSize);
|
||||
MCOS->EmitAbsValue(Size, AddrSize);
|
||||
|
||||
// And finally the pair of terminating zeros.
|
||||
@@ -682,12 +682,12 @@ static void EmitGenDwarfInfo(MCStreamer *MCOS,
|
||||
// AT_low_pc, the first address of the default .text section.
|
||||
const MCExpr *Start = MCSymbolRefExpr::Create(
|
||||
context.getGenDwarfSectionStartSym(), MCSymbolRefExpr::VK_None, context);
|
||||
MCOS->EmitAbsValue(Start, AddrSize);
|
||||
MCOS->EmitValue(Start, AddrSize);
|
||||
|
||||
// AT_high_pc, the last address of the default .text section.
|
||||
const MCExpr *End = MCSymbolRefExpr::Create(
|
||||
context.getGenDwarfSectionEndSym(), MCSymbolRefExpr::VK_None, context);
|
||||
MCOS->EmitAbsValue(End, AddrSize);
|
||||
MCOS->EmitValue(End, AddrSize);
|
||||
|
||||
// AT_name, the name of the source file. Reconstruct from the first directory
|
||||
// and file table entries.
|
||||
@@ -756,7 +756,7 @@ static void EmitGenDwarfInfo(MCStreamer *MCOS,
|
||||
// AT_low_pc, start address of the label.
|
||||
const MCExpr *AT_low_pc = MCSymbolRefExpr::Create(Entry->getLabel(),
|
||||
MCSymbolRefExpr::VK_None, context);
|
||||
MCOS->EmitAbsValue(AT_low_pc, AddrSize);
|
||||
MCOS->EmitValue(AT_low_pc, AddrSize);
|
||||
|
||||
// DW_AT_prototyped, a one byte flag value of 0 saying we have no prototype.
|
||||
MCOS->EmitIntValue(0, 1);
|
||||
|
Reference in New Issue
Block a user