diff options
Diffstat (limited to 'llvm/lib/Target/DarwinTargetAsmInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/DarwinTargetAsmInfo.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/DarwinTargetAsmInfo.cpp b/llvm/lib/Target/DarwinTargetAsmInfo.cpp index 0b6babe53b1..329beff3c53 100644 --- a/llvm/lib/Target/DarwinTargetAsmInfo.cpp +++ b/llvm/lib/Target/DarwinTargetAsmInfo.cpp @@ -103,18 +103,21 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM) /// emitUsedDirectiveFor - On Darwin, internally linked data beginning with /// the PrivateGlobalPrefix or the LessPrivateGlobalPrefix does not have the /// directive emitted (this occurs in ObjC metadata). - bool DarwinTargetAsmInfo::emitUsedDirectiveFor(const GlobalValue* GV, Mangler *Mang) const { if (GV==0) return false; + + /// FIXME: WHAT IS THIS? + if (GV->hasLocalLinkage() && !isa<Function>(GV) && ((strlen(getPrivateGlobalPrefix()) != 0 && - Mang->getValueName(GV).substr(0,strlen(getPrivateGlobalPrefix())) == + Mang->getMangledName(GV).substr(0,strlen(getPrivateGlobalPrefix())) == getPrivateGlobalPrefix()) || (strlen(getLessPrivateGlobalPrefix()) != 0 && - Mang->getValueName(GV).substr(0,strlen(getLessPrivateGlobalPrefix())) == + Mang->getMangledName(GV).substr(0, + strlen(getLessPrivateGlobalPrefix())) == getLessPrivateGlobalPrefix()))) return false; return true; |

