mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 21:29:20 +00:00
Basic fix for PR#591; don't convert an fprintf() to an fwrite() if there
is a mismatch in their character type pointers (i.e. fprintf() prints an array of ubytes while fwrite() takes an array of sbytes). We can probably do better than this (such as casting the ubyte to an sbyte). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22310 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0cab375231
commit
1d231ec0b0
@ -1305,6 +1305,15 @@ public:
|
||||
Function* fwrite_func = SLC.get_fwrite(FILEptr_type);
|
||||
if (!fwrite_func)
|
||||
return false;
|
||||
|
||||
// Make sure that the fprintf() and fwrite() functions both take the
|
||||
// same type of char pointer.
|
||||
if (ci->getOperand(2)->getType() !=
|
||||
fwrite_func->getFunctionType()->getParamType(0))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<Value*> args;
|
||||
args.push_back(ci->getOperand(2));
|
||||
args.push_back(ConstantUInt::get(SLC.getIntPtrType(),len));
|
||||
|
Loading…
Reference in New Issue
Block a user