/// is "l" on Darwin, currently used for some ObjC metadata.
const char *LinkerPrivateGlobalPrefix; // Defaults to ""
- /// GlobalVarAddrPrefix/Suffix - If these are nonempty, these strings
- /// will enclose any GlobalVariable (that isn't a function)
- ///
- const char *GlobalVarAddrPrefix; // Defaults to ""
- const char *GlobalVarAddrSuffix; // Defaults to ""
-
- /// FunctionAddrPrefix/Suffix - If these are nonempty, these strings
- /// will enclose any GlobalVariable that points to a function.
- ///
- const char *FunctionAddrPrefix; // Defaults to ""
- const char *FunctionAddrSuffix; // Defaults to ""
-
/// PersonalityPrefix/Suffix - If these are nonempty, these strings will
/// enclose any personality function in the common frame section.
///
const char *getLinkerPrivateGlobalPrefix() const {
return LinkerPrivateGlobalPrefix;
}
- const char *getGlobalVarAddrPrefix() const {
- return GlobalVarAddrPrefix;
- }
- const char *getGlobalVarAddrSuffix() const {
- return GlobalVarAddrSuffix;
- }
- const char *getFunctionAddrPrefix() const {
- return FunctionAddrPrefix;
- }
- const char *getFunctionAddrSuffix() const {
- return FunctionAddrSuffix;
- }
const char *getPersonalityPrefix() const {
return PersonalityPrefix;
}
/// generate the appropriate value.
const std::string &AsmPrinter::getGlobalLinkName(const GlobalVariable *GV,
std::string &LinkName) const {
- if (isa<Function>(GV)) {
- LinkName += MAI->getFunctionAddrPrefix();
- LinkName += Mang->getMangledName(GV);
- LinkName += MAI->getFunctionAddrSuffix();
- } else {
- LinkName += MAI->getGlobalVarAddrPrefix();
- LinkName += Mang->getMangledName(GV);
- LinkName += MAI->getGlobalVarAddrSuffix();
- }
-
+ LinkName += Mang->getMangledName(GV);
return LinkName;
}
O << CI->getZExtValue();
} else if (const GlobalValue *GV = dyn_cast<GlobalValue>(CV)) {
// This is a constant address for a global variable or function. Use the
- // name of the variable or function as the address value, possibly
- // decorating it with GlobalVarAddrPrefix/Suffix or
- // FunctionAddrPrefix/Suffix (these all default to "" )
- if (isa<Function>(GV)) {
- O << MAI->getFunctionAddrPrefix()
- << Mang->getMangledName(GV)
- << MAI->getFunctionAddrSuffix();
- } else {
- O << MAI->getGlobalVarAddrPrefix()
- << Mang->getMangledName(GV)
- << MAI->getGlobalVarAddrSuffix();
- }
+ // name of the variable or function as the address value.
+ O << Mang->getMangledName(GV);
} else if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(CV)) {
const TargetData *TD = TM.getTargetData();
unsigned Opcode = CE->getOpcode();
GlobalPrefix = "";
PrivateGlobalPrefix = ".";
LinkerPrivateGlobalPrefix = "";
- GlobalVarAddrPrefix = "";
- GlobalVarAddrSuffix = "";
- FunctionAddrPrefix = "";
- FunctionAddrSuffix = "";
PersonalityPrefix = "";
PersonalitySuffix = "";
NeedsIndirectEncoding = false;