2003-11-19 01:03:16 +00:00
|
|
|
; Linking these two translation units causes there to be two LLVM values in the
|
|
|
|
; symbol table with the same name and same type. When this occurs, the symbol
|
|
|
|
; table class is DROPPING one of the values, instead of renaming it like a nice
|
|
|
|
; little symbol table. This is causing llvm-link to die, at no fault of its
|
|
|
|
; own.
|
|
|
|
|
2008-03-10 07:21:50 +00:00
|
|
|
; RUN: llvm-as < %s > %t.out2.bc
|
2011-08-26 20:09:48 +00:00
|
|
|
; RUN: echo "%%T1 = type opaque @GVar = external global %%T1*" | llvm-as > %t.out1.bc
|
2007-04-15 18:11:57 +00:00
|
|
|
; RUN: llvm-link %t.out1.bc %t.out2.bc
|
2003-11-19 01:03:16 +00:00
|
|
|
|
2008-03-10 07:21:50 +00:00
|
|
|
%T1 = type opaque
|
|
|
|
%T2 = type i32
|
|
|
|
@GVar = global i32* null ; <i32**> [#uses=0]
|
2003-11-19 01:03:16 +00:00
|
|
|
|
2008-03-10 07:21:50 +00:00
|
|
|
define void @foo(i32* %X) {
|
|
|
|
%X.upgrd.1 = bitcast i32* %X to %T1* ; <%T1*> [#uses=0]
|
2003-11-19 01:03:16 +00:00
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|
|
|
|
|