diff options
Diffstat (limited to 'test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.ll')
-rw-r--r-- | test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.ll | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.ll b/test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.ll new file mode 100644 index 0000000000..a8ee438cc4 --- /dev/null +++ b/test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.ll @@ -0,0 +1,12 @@ +; 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 + +declare void @external(i8*) + +define i32 @test(i32* %X) { + %RV = call i32 bitcast (void (i8*)* @external to i32 (i32*)*)( i32* %X ) ; <i32> [#uses=1] + ret i32 %RV +} + |