[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