1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00

Simplify the code in DarwinTargetAsmInfo::emitUsedDirectiveFor so that humans can understand it.

llvm-svn: 76480
This commit is contained in:
Bill Wendling 2009-07-20 21:38:26 +00:00
parent 16a69eeaeb
commit ca94e95735
2 changed files with 16 additions and 17 deletions

View File

@ -774,4 +774,3 @@ MachOSym::MachOSym(const GlobalValue *gv, std::string name, uint8_t sect,
} }
} // end namespace llvm } // end namespace llvm

View File

@ -107,23 +107,23 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM)
/// emitUsedDirectiveFor - On Darwin, internally linked data beginning with /// emitUsedDirectiveFor - On Darwin, internally linked data beginning with
/// the PrivateGlobalPrefix or the LessPrivateGlobalPrefix does not have the /// the PrivateGlobalPrefix or the LessPrivateGlobalPrefix does not have the
/// directive emitted (this occurs in ObjC metadata). /// directive emitted (this occurs in ObjC metadata).
bool bool DarwinTargetAsmInfo::emitUsedDirectiveFor(const GlobalValue* GV,
DarwinTargetAsmInfo::emitUsedDirectiveFor(const GlobalValue* GV, Mangler *Mang) const {
Mangler *Mang) const { if (!GV) return false;
if (GV==0)
return false;
/// FIXME: WHAT IS THIS? // Check whether the mangled name has the "Private" or "LessPrivate" prefix.
if (GV->hasLocalLinkage() && !isa<Function>(GV)) {
const std::string &Name = Mang->getMangledName(GV);
const char *PGPrefix = getPrivateGlobalPrefix();
const char *LPGPrefix = getLessPrivateGlobalPrefix();
unsigned PGPLen = strlen(PGPrefix);
unsigned LPGPLen = strlen(LPGPrefix);
if ((PGPLen != 0 && Name.substr(0, PGPLen) == PGPrefix) ||
(LPGPLen != 0 && Name.substr(0, LPGPLen) == LPGPrefix))
return false;
}
if (GV->hasLocalLinkage() && !isa<Function>(GV) &&
((strlen(getPrivateGlobalPrefix()) != 0 &&
Mang->getMangledName(GV).substr(0,strlen(getPrivateGlobalPrefix())) ==
getPrivateGlobalPrefix()) ||
(strlen(getLessPrivateGlobalPrefix()) != 0 &&
Mang->getMangledName(GV).substr(0,
strlen(getLessPrivateGlobalPrefix())) ==
getLessPrivateGlobalPrefix())))
return false;
return true; return true;
} }