Ensure that EmitGlobalVariable is correctly differentiating between declarations
authorChad Rosier <mcrosier@apple.com>
Fri, 10 Jun 2011 00:53:15 +0000 (00:53 +0000)
committerChad Rosier <mcrosier@apple.com>
Fri, 10 Jun 2011 00:53:15 +0000 (00:53 +0000)
and definitions when emitting global variables.  This was causing global
declarations to be emitted as if they were definitions.
Fixes <rdar://problem/9429892>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132825 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/AsmPrinter.cpp

index 81782ea43675dc5ea841684ca5689254b393fd20..161afbafb57b179ab89ec9155a8846465b33d5ba 100644 (file)
@@ -269,7 +269,7 @@ void AsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) {
   }
 
   MCSymbol *GVSym = Mang->getSymbol(GV);
-  EmitVisibility(GVSym, GV->getVisibility());
+  EmitVisibility(GVSym, GV->getVisibility(), !GV->isDeclaration());
 
   if (!GV->hasInitializer())   // External globals require no extra code.
     return;