Only add unnamed_addr to definitions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123354 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGVTT.cpp b/lib/CodeGen/CGVTT.cpp
index 5a99059..bee87e2 100644
--- a/lib/CodeGen/CGVTT.cpp
+++ b/lib/CodeGen/CGVTT.cpp
@@ -399,7 +399,8 @@
     GV = new llvm::GlobalVariable(CGM.getModule(), Type, /*isConstant=*/true, 
                                   Linkage, Init, Name);
     CGM.setGlobalVisibility(GV, RD, /*ForDefinition*/ GenerateDefinition);
-    GV->setUnnamedAddr(true);
+    if (GenerateDefinition)
+      GV->setUnnamedAddr(true);
     
     if (OldGV) {
       GV->takeName(OldGV);
diff --git a/lib/CodeGen/CGVTables.cpp b/lib/CodeGen/CGVTables.cpp
index ff65e58..0e43b1a 100644
--- a/lib/CodeGen/CGVTables.cpp
+++ b/lib/CodeGen/CGVTables.cpp
@@ -2982,7 +2982,6 @@
   llvm::GlobalVariable *GV =
     GetGlobalVariable(CGM.getModule(), Name, ArrayType,
                       llvm::GlobalValue::ExternalLinkage);
-  GV->setUnnamedAddr(true);
   return GV;
 }
 
@@ -3074,6 +3073,7 @@
   }
 
   VTable = GetAddrOfVTable(RD);
+  VTable->setUnnamedAddr(true);
   EmitVTableDefinition(VTable, Linkage, RD);
 
   GenerateVTT(Linkage, /*GenerateDefinition=*/true, RD);