aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorShih-wei Liao <sliao@google.com>2012-03-17 01:11:12 -0700
committerShih-wei Liao <sliao@google.com>2012-03-17 01:11:12 -0700
commit8b8825ac164c2e7cce8b6987cea78cd8b301360d (patch)
tree7e9bcf2a69a7e098bafffc5bd8c2fafb31eac6aa /lib
parent06a2e67b00e6a7758c4e19aca02a1e90e9511f65 (diff)
downloadexternal_llvm-8b8825ac164c2e7cce8b6987cea78cd8b301360d.zip
external_llvm-8b8825ac164c2e7cce8b6987cea78cd8b301360d.tar.gz
external_llvm-8b8825ac164c2e7cce8b6987cea78cd8b301360d.tar.bz2
Integrated linker.
Change-Id: Iec22c1b717750cb428c61c5319cdd77378e4af1e
Diffstat (limited to 'lib')
-rw-r--r--lib/MC/MCAssembler.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/MC/MCAssembler.cpp b/lib/MC/MCAssembler.cpp
index a2aaf4e..b62e8f5 100644
--- a/lib/MC/MCAssembler.cpp
+++ b/lib/MC/MCAssembler.cpp
@@ -157,7 +157,8 @@ MCFragment::~MCFragment() {
}
MCFragment::MCFragment(FragmentType _Kind, MCSectionData *_Parent)
- : Kind(_Kind), Parent(_Parent), Atom(0), Offset(~UINT64_C(0))
+ : Kind(_Kind), Parent(_Parent), Atom(0), Offset(~UINT64_C(0)),
+ LayoutOrder(~(0U))
{
if (Parent)
Parent->getFragmentList().push_back(this);
@@ -197,7 +198,7 @@ MCSymbolData::MCSymbolData(const MCSymbol &_Symbol, MCFragment *_Fragment,
MCAssembler::MCAssembler(MCContext &Context_, MCAsmBackend &Backend_,
MCCodeEmitter &Emitter_, MCObjectWriter &Writer_,
raw_ostream &OS_)
- : Context(Context_), Backend(Backend_), Emitter(Emitter_), Writer(Writer_),
+ : Context(Context_), Backend(Backend_), Emitter(Emitter_), m_pWriter(&Writer_),
OS(OS_), RelaxAll(false), NoExecStack(false), SubsectionsViaSymbols(false)
{
}
@@ -205,6 +206,11 @@ MCAssembler::MCAssembler(MCContext &Context_, MCAsmBackend &Backend_,
MCAssembler::~MCAssembler() {
}
+void MCAssembler::setWriter(MCObjectWriter &pObjectWriter) {
+ delete m_pWriter;
+ m_pWriter = &pObjectWriter;
+}
+
bool MCAssembler::isSymbolLinkerVisible(const MCSymbol &Symbol) const {
// Non-temporary labels should always be visible to the linker.
if (!Symbol.isTemporary())