2004-11-13 22:21:15 +00:00
|
|
|
; 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. :(
|
2008-02-19 01:41:04 +00:00
|
|
|
; RUN: llvm-as < %s | llc -march=c
|
2004-11-13 22:21:15 +00:00
|
|
|
|
2008-02-19 01:41:04 +00:00
|
|
|
declare void @external(i8*)
|
2004-11-13 22:21:15 +00:00
|
|
|
|
2008-02-19 01:41:04 +00:00
|
|
|
define i32 @test(i32* %X) {
|
|
|
|
%RV = call i32 bitcast (void (i8*)* @external to i32 (i32*)*)( i32* %X ) ; <i32> [#uses=1]
|
|
|
|
ret i32 %RV
|
2004-11-13 22:21:15 +00:00
|
|
|
}
|
|
|
|
|