diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2011-04-29 18:07:43 +0000 | 
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2011-04-29 18:07:43 +0000 | 
| commit | b9c2b6c50d6b1c1df9be15e6c24c12c956784a17 (patch) | |
| tree | 8fb7941a0bf44463756b8fd8be5bcf6e4d6a9f2c /llvm/lib/MC | |
| parent | 124ae13421b0ca3ffb0e136bce2277ae41509a80 (diff) | |
| download | bcm5719-llvm-b9c2b6c50d6b1c1df9be15e6c24c12c956784a17.tar.gz bcm5719-llvm-b9c2b6c50d6b1c1df9be15e6c24c12c956784a17.zip  | |
MC/Mach-O: Find section ordinal's by looking at the symbol, instead of assuming they are present in a fragment.
llvm-svn: 130519
Diffstat (limited to 'llvm/lib/MC')
| -rw-r--r-- | llvm/lib/MC/MachObjectWriter.cpp | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp index afa3b5c13e1..dde1c5d9830 100644 --- a/llvm/lib/MC/MachObjectWriter.cpp +++ b/llvm/lib/MC/MachObjectWriter.cpp @@ -1050,8 +1050,10 @@ public:            FixedValue -= Layout.getSymbolOffset(SD);        } else {          // The index is the section ordinal (1-based). -        Index = SD->getFragment()->getParent()->getOrdinal() + 1; -        FixedValue += getSectionAddress(SD->getFragment()->getParent()); +        const MCSectionData &SymSD = Asm.getSectionData( +          SD->getSymbol().getSection()); +        Index = SymSD.getOrdinal() + 1; +        FixedValue += getSectionAddress(&SymSD);        }        if (IsPCRel)          FixedValue -= getSectionAddress(Fragment->getParent()); @@ -1149,8 +1151,10 @@ public:            FixedValue -= Layout.getSymbolOffset(SD);        } else {          // The index is the section ordinal (1-based). -        Index = SD->getFragment()->getParent()->getOrdinal() + 1; -        FixedValue += getSectionAddress(SD->getFragment()->getParent()); +        const MCSectionData &SymSD = Asm.getSectionData( +          SD->getSymbol().getSection()); +        Index = SymSD.getOrdinal() + 1; +        FixedValue += getSectionAddress(&SymSD);        }        if (IsPCRel)          FixedValue -= getSectionAddress(Fragment->getParent());  | 

