diff --git a/test/Regression/Transforms/LevelRaise/2002-03-11-Calls.ll b/test/Regression/Transforms/LevelRaise/2002-03-11-Calls.ll new file mode 100644 index 00000000000..1232b1a6a44 --- /dev/null +++ b/test/Regression/Transforms/LevelRaise/2002-03-11-Calls.ll @@ -0,0 +1,15 @@ +; Fixed a problem where level raise would try to forward substitute a cast of a +; method pointer type into a call. In doing so, it would have to change the +; types of the arguments to the call, but broke doing so. +; +; RUN: as < %s | opt -raise + +implementation + + +void "test"(void (int*) *%Fn, long* %Arg) +begin + %Fn2 = cast void (int*) *%Fn to void(long*) * + call void %Fn2(long *%Arg) + ret void +end