aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-05-31 21:14:45 +0000
committerChris Lattner <sabre@nondot.org>2003-05-31 21:14:45 +0000
commit8a143e8810abf7b08690933a3b6aca3fb3ccda03 (patch)
treedadcb73f0cd6e22afb8bcfbe4f5592c1b38c9ade /test
parent12ce59d3c58ec4397e38b5acf2dd654ed578439e (diff)
downloadexternal_llvm-8a143e8810abf7b08690933a3b6aca3fb3ccda03.zip
external_llvm-8a143e8810abf7b08690933a3b6aca3fb3ccda03.tar.gz
external_llvm-8a143e8810abf7b08690933a3b6aca3fb3ccda03.tar.bz2
New testcase for behavior we depend on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6483 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Linker/2003-05-31-LinkerRename.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/Linker/2003-05-31-LinkerRename.ll b/test/Linker/2003-05-31-LinkerRename.ll
new file mode 100644
index 0000000..b1ba4b0
--- /dev/null
+++ b/test/Linker/2003-05-31-LinkerRename.ll
@@ -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
+}
+