Add protected visibility to libLTO.
authorNick Lewycky <nicholas@mxc.ca>
Sat, 29 Nov 2008 22:49:59 +0000 (22:49 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Sat, 29 Nov 2008 22:49:59 +0000 (22:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60257 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm-c/lto.h
tools/lto/LTOModule.cpp

index c57dfe7306de9849d9f381971901a81ed170c33a..74a070342e96d02057112c284f47105c92ca0858 100644 (file)
@@ -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;
 
index 7eb79053ea9786e46bc79c70bebb9be8a07925c5..6331a59e02d6389374f6935aeb251ea894b80a0e 100644 (file)
@@ -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;