mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
Make sure that simplify libcalls does not replace a call with one calling
convention with a new call with a different calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106134 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
956352eb46
commit
e96af56a5b
@ -66,6 +66,11 @@ public:
|
||||
this->TD = TD;
|
||||
if (CI->getCalledFunction())
|
||||
Context = &CI->getCalledFunction()->getContext();
|
||||
|
||||
// We never change the calling convention.
|
||||
if (CI->getCallingConv() != llvm::CallingConv::C)
|
||||
return NULL;
|
||||
|
||||
return CallOptimizer(CI->getCalledFunction(), CI, B);
|
||||
}
|
||||
};
|
||||
|
16
test/Transforms/SimplifyLibCalls/PR7357.ll
Normal file
16
test/Transforms/SimplifyLibCalls/PR7357.ll
Normal file
@ -0,0 +1,16 @@
|
||||
; RUN: opt < %s -default-data-layout="e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n32" -simplify-libcalls -S | FileCheck %s
|
||||
@.str1 = private constant [11 x i8] c"(){};[]&|:\00", align 4
|
||||
|
||||
; check that simplify libcalls will not replace a call with one calling
|
||||
; convention with a new call with a different calling convention.
|
||||
|
||||
; CHECK: define arm_aapcscc i32 @foo(i32 %argc)
|
||||
; CHECK: call arm_aapcscc i8* @strchr
|
||||
define arm_aapcscc i32 @foo(i32 %argc) nounwind {
|
||||
bb.nph:
|
||||
call arm_aapcscc i8* @strchr(i8* getelementptr ([11 x i8]* @.str1, i32 0,
|
||||
i32 0), i32 %argc) nounwind readonly
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
declare arm_aapcscc i8* @strchr(i8*, i32) nounwind readonly
|
Loading…
Reference in New Issue
Block a user