From: Daniel Dunbar Date: Wed, 26 Aug 2009 13:57:37 +0000 (+0000) Subject: llvm-mc: Add symbol entries for undefined symbols used in .fill and .org. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=a421de11df9d2a07b9f95a1ad817467af426803a;p=oota-llvm.git llvm-mc: Add symbol entries for undefined symbols used in .fill and .org. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80086 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/MC/MCMachOStreamer.cpp b/lib/MC/MCMachOStreamer.cpp index bed0d43d379..4a888078833 100644 --- a/lib/MC/MCMachOStreamer.cpp +++ b/lib/MC/MCMachOStreamer.cpp @@ -72,6 +72,14 @@ public: : MCStreamer(Context), Assembler(_OS), CurSectionData(0) {} ~MCMachOStreamer() {} + const MCValue &AddValueSymbols(const MCValue &Value) { + if (Value.getSymA()) + getSymbolData(*const_cast(Value.getSymA())); + if (Value.getSymB()) + getSymbolData(*const_cast(Value.getSymB())); + return Value; + } + /// @name MCStreamer Interface /// @{ @@ -265,7 +273,7 @@ void MCMachOStreamer::EmitBytes(const StringRef &Data) { } void MCMachOStreamer::EmitValue(const MCValue &Value, unsigned Size) { - new MCFillFragment(Value, Size, 1, CurSectionData); + new MCFillFragment(AddValueSymbols(Value), Size, 1, CurSectionData); } void MCMachOStreamer::EmitValueToAlignment(unsigned ByteAlignment, @@ -283,7 +291,7 @@ void MCMachOStreamer::EmitValueToAlignment(unsigned ByteAlignment, void MCMachOStreamer::EmitValueToOffset(const MCValue &Offset, unsigned char Value) { - new MCOrgFragment(Offset, Value, CurSectionData); + new MCOrgFragment(AddValueSymbols(Offset), Value, CurSectionData); } void MCMachOStreamer::EmitInstruction(const MCInst &Inst) {