From 8408d0be90edd89b60fcd20e68034fe932cec7ee Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 13 Nov 2004 22:21:15 +0000 Subject: [PATCH] New testcase git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17709 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../CBackend/2004-11-13-FunctionPointerCast.llx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.llx 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 00000000000..2f02e653ed9 --- /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 +} + + + +