1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

- Add the LinkerPrivateWeakDefAutoLinkage to the Ada bindings.

- Support the LinkerWeak*Linkage types in llvm-nm and in LinkModules.cpp.

llvm-svn: 111952
This commit is contained in:
Bill Wendling 2010-08-24 20:00:52 +00:00
parent b96b0c40d3
commit 9e3d8d1a60
3 changed files with 30 additions and 19 deletions

View File

@ -317,7 +317,8 @@ package llvm is
LLVMGhostLinkage,
LLVMCommonLinkage,
LLVMLinkerPrivateLinkage,
LLVMLinkerPrivateWeakLinkage);
LLVMLinkerPrivateWeakLinkage,
LinkerPrivateWeakDefAutoLinkage);
for LLVMLinkage use
(LLVMExternalLinkage => 0,
@ -335,7 +336,8 @@ package llvm is
LLVMGhostLinkage => 12,
LLVMCommonLinkage => 13,
LLVMLinkerPrivateLinkage => 14,
LLVMLinkerPrivateWeakLinkage => 15);
LLVMLinkerPrivateWeakLinkage => 15,
LinkerPrivateWeakDefAutoLinkage => 16);
pragma Convention (C, LLVMLinkage);

View File

@ -643,6 +643,12 @@ CalculateAliasLinkage(const GlobalValue *SGV, const GlobalValue *DGV) {
else if (SL == GlobalValue::LinkerPrivateLinkage &&
DL == GlobalValue::LinkerPrivateLinkage)
return GlobalValue::LinkerPrivateLinkage;
else if (SL == GlobalValue::LinkerPrivateWeakLinkage &&
DL == GlobalValue::LinkerPrivateWeakLinkage)
return GlobalValue::LinkerPrivateWeakLinkage;
else if (SL == GlobalValue::LinkerPrivateWeakDefAutoLinkage &&
DL == GlobalValue::LinkerPrivateWeakDefAutoLinkage)
return GlobalValue::LinkerPrivateWeakDefAutoLinkage;
else {
assert (SL == GlobalValue::PrivateLinkage &&
DL == GlobalValue::PrivateLinkage && "Unexpected linkage type");

View File

@ -88,8 +88,11 @@ static char TypeCharForSymbol(GlobalValue &GV) {
static void DumpSymbolNameForGlobalValue(GlobalValue &GV) {
// Private linkage and available_externally linkage don't exist in symtab.
if (GV.hasPrivateLinkage() || GV.hasLinkerPrivateLinkage() ||
GV.hasLinkerPrivateWeakLinkage() || GV.hasAvailableExternallyLinkage())
if (GV.hasPrivateLinkage() ||
GV.hasLinkerPrivateLinkage() ||
GV.hasLinkerPrivateWeakLinkage() ||
GV.hasLinkerPrivateWeakDefAutoLinkage() ||
GV.hasAvailableExternallyLinkage())
return;
const std::string SymbolAddrStr = " "; // Not used yet...