mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Add fortified (__*_chk) library functions to TLI (NFC)
One of them (__memcpy_chk) was already there, the others were checked by comparing function names. Note that the fortified libfuncs are now part of TLI, but are always available, because they aren't generated, only optimized into the non-checking versions. Differential Revision: http://reviews.llvm.org/D6179 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221817 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -2184,30 +2184,22 @@ Value *LibCallSimplifier::optimizeCall(CallInst *CI) {
|
||||
return nullptr;
|
||||
case LibFunc::memcpy_chk:
|
||||
return optimizeMemCpyChk(CI, Builder);
|
||||
case LibFunc::memmove_chk:
|
||||
return optimizeMemMoveChk(CI, Builder);
|
||||
case LibFunc::memset_chk:
|
||||
return optimizeMemSetChk(CI, Builder);
|
||||
case LibFunc::strcpy_chk:
|
||||
return optimizeStrCpyChk(CI, Builder);
|
||||
case LibFunc::stpcpy_chk:
|
||||
return optimizeStpCpyChk(CI, Builder);
|
||||
case LibFunc::stpncpy_chk:
|
||||
case LibFunc::strncpy_chk:
|
||||
return optimizeStrNCpyChk(CI, Builder);
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isCallingConvC)
|
||||
return nullptr;
|
||||
|
||||
// Finally check for fortified library calls.
|
||||
if (FuncName.endswith("_chk")) {
|
||||
if (FuncName == "__memmove_chk")
|
||||
return optimizeMemMoveChk(CI, Builder);
|
||||
else if (FuncName == "__memset_chk")
|
||||
return optimizeMemSetChk(CI, Builder);
|
||||
else if (FuncName == "__strcpy_chk")
|
||||
return optimizeStrCpyChk(CI, Builder);
|
||||
else if (FuncName == "__stpcpy_chk")
|
||||
return optimizeStpCpyChk(CI, Builder);
|
||||
else if (FuncName == "__strncpy_chk")
|
||||
return optimizeStrNCpyChk(CI, Builder);
|
||||
else if (FuncName == "__stpncpy_chk")
|
||||
return optimizeStrNCpyChk(CI, Builder);
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user