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.
|
|
|
|
|
2006-12-02 20:40:30 +00:00
|
|
|
; RUN: llvm-upgrade %s | llvm-as > %t.out2.bc
|
2007-01-26 08:25:06 +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
|
|
|
|
|
|
|
%T1 = type opaque
|
|
|
|
%T2 = type int
|
|
|
|
|
|
|
|
%GVar = global %T2 * null
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
void %foo(%T2 * %X) {
|
|
|
|
%X = cast %T2* %X to %T1 *
|
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|
|
|
|
|