diff options
Diffstat (limited to 'test/Linker/2003-11-18-TypeResolution.ll')
-rw-r--r-- | test/Linker/2003-11-18-TypeResolution.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/Linker/2003-11-18-TypeResolution.ll b/test/Linker/2003-11-18-TypeResolution.ll new file mode 100644 index 0000000..d3152ed --- /dev/null +++ b/test/Linker/2003-11-18-TypeResolution.ll @@ -0,0 +1,20 @@ +; 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. + +; RUN: llvm-as < %s > %t.out2.bc +; RUN: echo "%T1 = type opaque @GVar = external global %T1*" | llvm-as > %t.out1.bc +; RUN: llvm-link %t.out1.bc %t.out2.bc + +%T1 = type opaque +%T2 = type i32 +@GVar = global i32* null ; <i32**> [#uses=0] + +define void @foo(i32* %X) { + %X.upgrd.1 = bitcast i32* %X to %T1* ; <%T1*> [#uses=0] + ret void +} + + |