mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-18 13:34:04 +00:00
Fix Transforms/InstCombine/2007-05-18-CastFoldBug.ll, a bug that devastates
objc code due to the way the FE lowers objc message sends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37256 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
74b9a814f6
commit
a2b18de4ba
@ -7773,6 +7773,14 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) {
|
||||
const FunctionType *FT = Callee->getFunctionType();
|
||||
const Type *OldRetTy = Caller->getType();
|
||||
|
||||
const FunctionType *ActualFT =
|
||||
cast<FunctionType>(cast<PointerType>(CE->getType())->getElementType());
|
||||
|
||||
// If the parameter attributes don't match up, don't do the xform. We don't
|
||||
// want to lose an sret attribute or something.
|
||||
if (FT->getParamAttrs() != ActualFT->getParamAttrs())
|
||||
return false;
|
||||
|
||||
// Check to see if we are changing the return type...
|
||||
if (OldRetTy != FT->getReturnType()) {
|
||||
if (Callee->isDeclaration() && !Caller->use_empty() &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user