summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-11-13 22:21:15 +0000
committerChris Lattner <sabre@nondot.org>2004-11-13 22:21:15 +0000
commita259bd9d678a405ae5db70929e4acea174bb2371 (patch)
treeb2b3f246de1d79e84029a5c68462550a1e565b70 /llvm/test
parentb947fb3e95f8ff09fdae10949e7c33d316692f77 (diff)
downloadbcm5719-llvm-a259bd9d678a405ae5db70929e4acea174bb2371.tar.gz
bcm5719-llvm-a259bd9d678a405ae5db70929e4acea174bb2371.zip
New testcase
llvm-svn: 17709
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Regression/CodeGen/CBackend/2004-11-13-FunctionPointerCast.llx17
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/test/Regression/CodeGen/CBackend/2004-11-13-FunctionPointerCast.llx b/llvm/test/Regression/CodeGen/CBackend/2004-11-13-FunctionPointerCast.llx
new file mode 100644
index 00000000000..2f02e653ed9
--- /dev/null
+++ b/llvm/test/Regression/CodeGen/CBackend/2004-11-13-FunctionPointerCast.llx
@@ -0,0 +1,17 @@
+; The CBE should not emit code that casts the function pointer. This causes
+; GCC to get testy and insert trap instructions instead of doing the right
+; thing. :(
+; RUN: llvm-as < %s | llc -march=c | not grep 'external)'
+
+implementation
+
+declare void %external(sbyte*)
+
+int %test(int *%X) {
+ %RV = call int (int*)* cast (void(sbyte*)* %external to int(int*)*)(int* %X)
+ ret int %RV
+}
+
+
+
+
OpenPOWER on IntegriCloud