diff options
Diffstat (limited to 'llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp index fdb7831fe84..929538efae2 100644 --- a/llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp +++ b/llvm/lib/Target/PowerPC/PowerPCAsmPrinter.cpp @@ -366,8 +366,9 @@ void PowerPCAsmPrinter::printOp(const MachineOperand &MO,        return;      } -    // External global variables need a non-lazily-resolved stub -    if (GV->isExternal() && getTM().AddressTaken.count(GV)) { +    // External or weakly linked global variables need non-lazily-resolved stubs +    if ((GV->isExternal() || GV->hasWeakLinkage()) &&  +        getTM().AddressTaken.count(GV)) {        GVStubs.insert(Name);        O << "L" << Name << "$non_lazy_ptr";        return; | 

