OSDN Git Service

Fix a use of an undefined value (the linkage).
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 9 Sep 2014 14:52:27 +0000 (14:52 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 9 Sep 2014 14:52:27 +0000 (14:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217445 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Linker/LinkModules.cpp
test/Linker/Inputs/linkage2.ll
test/Linker/linkage2.ll

index 14c6a10..6e42599 100644 (file)
@@ -705,6 +705,9 @@ bool ModuleLinker::getLinkageResult(GlobalValue *Dest, const GlobalValue *Src,
       if (DestIsDeclaration) {
         LinkFromSrc = true;
         LT = Src->getLinkage();
+      } else {
+        LinkFromSrc = false;
+        LT = Dest->getLinkage();
       }
     } else if (Dest->hasExternalWeakLinkage()) {
       // If the Dest is weak, use the source linkage.
index 3f6963e..6ecaeb5 100644 (file)
@@ -1 +1,3 @@
 @test1_a = weak global i8 1
+
+@test2_a = external dllimport global i8
index 2ecdc1f..99cb22c 100644 (file)
@@ -2,5 +2,7 @@
 ; RUN: llvm-link %p/Inputs/linkage2.ll %s -S | FileCheck %s
 
 @test1_a = common global i8 0
-
 ; CHECK: @test1_a = common global i8 0
+
+@test2_a = global i8 0
+; CHECK: @test2_a = global i8 0