aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2009-08-17 17:05:44 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2009-08-17 17:05:44 +0000
commit858ea8f4f72fb161663baf54ff7b029682a2b04f (patch)
tree8a24e3288b630ff6ee1da7f99bb65e1ef5d256fd
parentaff6f9857a44e167177ad6a40743d0ef553e1243 (diff)
downloadexternal_llvm-858ea8f4f72fb161663baf54ff7b029682a2b04f.zip
external_llvm-858ea8f4f72fb161663baf54ff7b029682a2b04f.tar.gz
external_llvm-858ea8f4f72fb161663baf54ff7b029682a2b04f.tar.bz2
Clear the uniquing table when initializing TLOF to avoid a crash when the TLOF is reinitialized with a different MCContext.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79253 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/TargetLoweringObjectFile.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp
index 8e1351b..ff0180b 100644
--- a/lib/Target/TargetLoweringObjectFile.cpp
+++ b/lib/Target/TargetLoweringObjectFile.cpp
@@ -304,6 +304,8 @@ getELFSection(StringRef Section, unsigned Type, unsigned Flags,
void TargetLoweringObjectFileELF::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
+ if (UniquingMap != 0)
+ ((ELFUniqueMapTy*)UniquingMap)->clear();
TargetLoweringObjectFile::Initialize(Ctx, TM);
BSSSection =
@@ -666,6 +668,8 @@ getMachOSection(const StringRef &Segment, const StringRef &Section,
void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
+ if (UniquingMap != 0)
+ ((MachOUniqueMapTy*)UniquingMap)->clear();
TargetLoweringObjectFile::Initialize(Ctx, TM);
TextSection // .text
@@ -946,6 +950,8 @@ getCOFFSection(const char *Name, bool isDirective, SectionKind Kind) const {
void TargetLoweringObjectFileCOFF::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
+ if (UniquingMap != 0)
+ ((COFFUniqueMapTy*)UniquingMap)->clear();
TargetLoweringObjectFile::Initialize(Ctx, TM);
TextSection = getCOFFSection("\t.text", true, SectionKind::getText());
DataSection = getCOFFSection("\t.data", true, SectionKind::getDataRel());