summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2008-11-29 22:49:59 +0000
committerNick Lewycky <nicholas@mxc.ca>2008-11-29 22:49:59 +0000
commit4fd40e884c76ffbf1157ab4ca48a099c55eebb4f (patch)
tree0113a77c89cee09ab360b1bab20d2e52436324d7
parent0ec48ddef20deaa061152d86645972122beef605 (diff)
downloadllvm-4fd40e884c76ffbf1157ab4ca48a099c55eebb4f.tar.gz
llvm-4fd40e884c76ffbf1157ab4ca48a099c55eebb4f.tar.bz2
llvm-4fd40e884c76ffbf1157ab4ca48a099c55eebb4f.tar.xz
Add protected visibility to libLTO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60257 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm-c/lto.h3
-rw-r--r--tools/lto/LTOModule.cpp2
2 files changed, 4 insertions, 1 deletions
diff --git a/include/llvm-c/lto.h b/include/llvm-c/lto.h
index c57dfe7306..74a070342e 100644
--- a/include/llvm-c/lto.h
+++ b/include/llvm-c/lto.h
@@ -30,9 +30,10 @@ typedef enum {
LTO_SYMBOL_DEFINITION_TENTATIVE = 0x00000200,
LTO_SYMBOL_DEFINITION_WEAK = 0x00000300,
LTO_SYMBOL_DEFINITION_UNDEFINED = 0x00000400,
- LTO_SYMBOL_SCOPE_MASK = 0x00001800,
+ LTO_SYMBOL_SCOPE_MASK = 0x00003800,
LTO_SYMBOL_SCOPE_INTERNAL = 0x00000800,
LTO_SYMBOL_SCOPE_HIDDEN = 0x00001000,
+ LTO_SYMBOL_SCOPE_PROTECTED = 0x00002000,
LTO_SYMBOL_SCOPE_DEFAULT = 0x00001800
} lto_symbol_attributes;
diff --git a/tools/lto/LTOModule.cpp b/tools/lto/LTOModule.cpp
index 7eb79053ea..6331a59e02 100644
--- a/tools/lto/LTOModule.cpp
+++ b/tools/lto/LTOModule.cpp
@@ -224,6 +224,8 @@ void LTOModule::addDefinedSymbol(GlobalValue* def, Mangler &mangler,
// set scope part
if ( def->hasHiddenVisibility() )
attr |= LTO_SYMBOL_SCOPE_HIDDEN;
+ else if ( def->hasProtectedVisibility() )
+ attr |= LTO_SYMBOL_SCOPE_PROTECTED;
else if ( def->hasExternalLinkage() || def->hasWeakLinkage()
|| def->hasLinkOnceLinkage() || def->hasCommonLinkage() )
attr |= LTO_SYMBOL_SCOPE_DEFAULT;