[cfe-commits] r69025 - /cfe/trunk/lib/CodeGen/CodeGenModule.cpp

Fariborz Jahanian fjahanian at apple.com
Tue Apr 14 08:22:48 PDT 2009


I always wondered what is LLVM's assumption about default visibility  
setting and no setting of
visibility. Can you provide and add a test case which highlights these  
changes. My concern is
that in the next routine of building projects we start running into  
mysterious linkage problems.
Also, on a related note, how do we turn-off 'no dead code stripping'  
attribute on globals. It seems
to be set by default.

- Fariborz

On Apr 13, 2009, at 10:27 PM, Chris Lattner wrote:

> Author: lattner
> Date: Tue Apr 14 00:27:13 2009
> New Revision: 69025
>
> URL: http://llvm.org/viewvc/llvm-project?rev=69025&view=rev
> Log:
> do not set visibility on "private" or "available externally" linkage  
> objects.
>
> Modified:
>    cfe/trunk/lib/CodeGen/CodeGenModule.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=69025&r1=69024&r2=69025&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Tue Apr 14 00:27:13 2009
> @@ -100,7 +100,7 @@
> static void setGlobalVisibility(llvm::GlobalValue *GV,
>                                 VisibilityAttr::VisibilityTypes Vis) {
>   // Internal definitions should always have default visibility.
> -  if (GV->hasInternalLinkage()) {
> +  if (GV->hasLocalLinkage()) {
>     GV->setVisibility(llvm::GlobalValue::DefaultVisibility);
>     return;
>   }
> @@ -122,7 +122,7 @@
> static void setGlobalOptionVisibility(llvm::GlobalValue *GV,
>                                       LangOptions::VisibilityMode  
> Vis) {
>   // Internal definitions should always have default visibility.
> -  if (GV->hasInternalLinkage()) {
> +  if (GV->hasLocalLinkage()) {
>     GV->setVisibility(llvm::GlobalValue::DefaultVisibility);
>     return;
>   }
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list