New testcase for behavior we depend on.
authorChris Lattner <sabre@nondot.org>
Sat, 31 May 2003 21:14:45 +0000 (21:14 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 31 May 2003 21:14:45 +0000 (21:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6483 91177308-0d34-0410-b5e6-96231b3b80d8

test/Linker/2003-05-31-LinkerRename.ll [new file with mode: 0644]

diff --git a/test/Linker/2003-05-31-LinkerRename.ll b/test/Linker/2003-05-31-LinkerRename.ll
new file mode 100644 (file)
index 0000000..b1ba4b0
--- /dev/null
@@ -0,0 +1,20 @@
+; The funcresolve pass will (intentionally) link an _internal_ function body with an
+; external declaration.  Because of this, if we LINK an internal function body into
+; a program that already has an external declaration for the function name, we must
+; rename the internal function to something that does not conflict.
+
+; RUN: echo "implementation internal int %foo() { ret int 7 }" | as > Output/%s.1.bc
+; RUN: as < %s > Output/%s.2.bc
+; RUN: if link Output/%s.[12].bc | dis | grep 'internal' | grep '%foo('
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+
+implementation
+declare int %foo() 
+
+int %test() { 
+  %X = call int %foo()
+  ret int %X
+}
+