New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17709 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.llx b/test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.llx
new file mode 100644
index 0000000..2f02e65
--- /dev/null
+++ b/test/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
+}
+
+
+
+