summaryrefslogtreecommitdiffstats
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
commitaf67df5881935a9389d88b4137cbc6699e3d3bca (patch)
tree1728444f2705972dccbf0c7de3c21c0ac705f270
parente7d7e13bf7884fe9cef6cbf4f7de25dcce453eb8 (diff)
downloadbcm5719-llvm-af67df5881935a9389d88b4137cbc6699e3d3bca.tar.gz
bcm5719-llvm-af67df5881935a9389d88b4137cbc6699e3d3bca.zip
Add protected visibility to libLTO.
llvm-svn: 60257
-rw-r--r--llvm/include/llvm-c/lto.h3
-rw-r--r--llvm/tools/lto/LTOModule.cpp2
2 files changed, 4 insertions, 1 deletions
diff --git a/llvm/include/llvm-c/lto.h b/llvm/include/llvm-c/lto.h
index c57dfe7306d..74a070342e9 100644
--- a/llvm/include/llvm-c/lto.h
+++ b/llvm/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/llvm/tools/lto/LTOModule.cpp b/llvm/tools/lto/LTOModule.cpp
index 7eb79053ea9..6331a59e02d 100644
--- a/llvm/tools/lto/LTOModule.cpp
+++ b/llvm/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;
OpenPOWER on IntegriCloud