Clear the uniquing table when initializing TLOF to avoid a crash when the TLOF is...
authorBenjamin Kramer <benny.kra@googlemail.com>
Mon, 17 Aug 2009 17:05:44 +0000 (17:05 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Mon, 17 Aug 2009 17:05:44 +0000 (17:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79253 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/TargetLoweringObjectFile.cpp

index 8e1351bc065ed9485a51619e4d8261c03460f501..ff0180bc0f98f6d435500e3ee67939aa4a385a6a 100644 (file)
@@ -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());