diff options
Diffstat (limited to 'lib/Target/X86')
-rw-r--r-- | lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp | 5 | ||||
-rw-r--r-- | lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h | 2 |
2 files changed, 3 insertions, 4 deletions
diff --git a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp index f8e6e8e..72958cb 100644 --- a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp +++ b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp @@ -351,11 +351,10 @@ void X86ATTAsmPrinter::print_pcrel_imm(const MachineInstr *MI, unsigned OpNo) { // Assemble call via PLT for externally visible symbols. if (MO.getTargetFlags() == X86II::MO_PLT) O << "@PLT"; - if (Subtarget->isTargetCygMing() && GV->isDeclaration()) // Save function name for later type emission - FnStubs.insert(Name); + CygMingStubs.insert(Name); } printOffset(MO.getOffset()); @@ -1050,7 +1049,7 @@ bool X86ATTAsmPrinter::doFinalization(Module &M) { O << "\t.subsections_via_symbols\n"; } else if (Subtarget->isTargetCygMing()) { // Emit type information for external functions - for (StringSet<>::iterator i = FnStubs.begin(), e = FnStubs.end(); + for (StringSet<>::iterator i = CygMingStubs.begin(), e = CygMingStubs.end(); i != e; ++i) { O << "\t.def\t " << i->getKeyData() << ";\t.scl\t" << COFF::C_EXT diff --git a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h index f47daf1..64558d5 100644 --- a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h +++ b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h @@ -199,7 +199,7 @@ class VISIBILITY_HIDDEN X86ATTAsmPrinter : public AsmPrinter { void emitFunctionHeader(const MachineFunction &MF); // Necessary for Darwin to print out the apprioriate types of linker stubs - StringSet<> FnStubs, GVStubs, HiddenGVStubs; + StringSet<> FnStubs, GVStubs, HiddenGVStubs, CygMingStubs; // Necessary for dllexport support StringSet<> DLLExportedFns, DLLExportedGVs; |