If a class does not have a key function, its linkage should be weak_odr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90680 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGVtable.cpp b/lib/CodeGen/CGVtable.cpp
index 9ed90f0..9c78c23 100644
--- a/lib/CodeGen/CGVtable.cpp
+++ b/lib/CodeGen/CGVtable.cpp
@@ -1092,7 +1092,7 @@
   
   // Figure out the right linkage.
   llvm::GlobalVariable::LinkageTypes Linkage = 
-    llvm::GlobalValue::LinkOnceODRLinkage;
+    llvm::GlobalValue::WeakODRLinkage;
   if (!Init)
     Linkage = llvm::GlobalValue::ExternalLinkage;
   else if (RD->isInAnonymousNamespace())
@@ -1167,7 +1167,7 @@
                                       b.getVtable().size());
     }
     llvm::GlobalVariable *OGV = GV;
-    GV = createGlobalVariable(*this, LayoutClass, ntype, C, Name);
+    GV = createGlobalVariable(*this, LayoutClass, ArrayType, Init, Name);
     if (OGV) {
       GV->takeName(OGV);
       llvm::Constant *NewPtr =