[llvm] r189950 - Error on linking appending globals with different unnamed_addr.

Rafael Espindola rafael.espindola at gmail.com
Wed Sep 4 08:33:34 PDT 2013


Author: rafael
Date: Wed Sep  4 10:33:34 2013
New Revision: 189950

URL: http://llvm.org/viewvc/llvm-project?rev=189950&view=rev
Log:
Error on linking appending globals with different unnamed_addr.

Added:
    llvm/trunk/test/Linker/unnamed-addr-err-a.ll
    llvm/trunk/test/Linker/unnamed-addr-err-b.ll
Modified:
    llvm/trunk/lib/Linker/LinkModules.cpp

Modified: llvm/trunk/lib/Linker/LinkModules.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Linker/LinkModules.cpp?rev=189950&r1=189949&r2=189950&view=diff
==============================================================================
--- llvm/trunk/lib/Linker/LinkModules.cpp (original)
+++ llvm/trunk/lib/Linker/LinkModules.cpp Wed Sep  4 10:33:34 2013
@@ -704,7 +704,11 @@ bool ModuleLinker::linkAppendingVarProto
   if (DstGV->getVisibility() != SrcGV->getVisibility())
     return emitError(
             "Appending variables with different visibility need to be linked!");
-  
+
+  if (DstGV->hasUnnamedAddr() != SrcGV->hasUnnamedAddr())
+    return emitError(
+        "Appending variables with different unnamed_addr need to be linked!");
+
   if (DstGV->getSection() != SrcGV->getSection())
     return emitError(
           "Appending variables with different section name need to be linked!");

Added: llvm/trunk/test/Linker/unnamed-addr-err-a.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Linker/unnamed-addr-err-a.ll?rev=189950&view=auto
==============================================================================
--- llvm/trunk/test/Linker/unnamed-addr-err-a.ll (added)
+++ llvm/trunk/test/Linker/unnamed-addr-err-a.ll Wed Sep  4 10:33:34 2013
@@ -0,0 +1,4 @@
+; RUN: not llvm-link %s %p/unnamed-addr-err-b.ll -S -o - 2>&1 | FileCheck %s
+
+ at foo = appending unnamed_addr global [1 x i32] [i32 42]
+; CHECK: Appending variables with different unnamed_addr need to be linked

Added: llvm/trunk/test/Linker/unnamed-addr-err-b.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Linker/unnamed-addr-err-b.ll?rev=189950&view=auto
==============================================================================
--- llvm/trunk/test/Linker/unnamed-addr-err-b.ll (added)
+++ llvm/trunk/test/Linker/unnamed-addr-err-b.ll Wed Sep  4 10:33:34 2013
@@ -0,0 +1,4 @@
+; This file is for use with unnamed-addr-err-a.ll
+; RUN: true
+
+ at foo = appending global [1 x i32] [i32 42]





More information about the llvm-commits mailing list