dunder_isoc99_sscanf,
/// void *__memcpy_chk(void *s1, const void *s2, size_t n, size_t s1size);
memcpy_chk,
+ /// void *__memmove_chk(void *s1, const void *s2, size_t n,
+ /// size_t s1size);
+ memmove_chk,
+ /// void *__memset_chk(void *s, char v, size_t n, size_t s1size);
+ memset_chk,
/// double __sincospi_stret(double x);
sincospi_stret,
/// float __sincospif_stret(float x);
sqrtf_finite,
/// long double __sqrt_finite(long double x);
sqrtl_finite,
+ /// char *__stpcpy_chk(char *s1, const char *s2, size_t s1size);
+ stpcpy_chk,
+ /// char *__stpncpy_chk(char *s1, const char *s2, size_t n,
+ /// size_t s1size);
+ stpncpy_chk,
+ /// char *__strcpy_chk(char *s1, const char *s2, size_t s1size);
+ strcpy_chk,
/// char * __strdup(const char *s);
dunder_strdup,
+ /// char *__strncpy_chk(char *s1, const char *s2, size_t n,
+ /// size_t s1size);
+ strncpy_chk,
/// char *__strndup(const char *s, size_t n);
dunder_strndup,
/// char * __strtok_r(char *s, const char *delim, char **save_ptr);
return nullptr;
case LibFunc::memcpy_chk:
return optimizeMemCpyChk(CI, Builder);
- default:
- return nullptr;
- }
- }
-
- if (!isCallingConvC)
- return nullptr;
-
- // Finally check for fortified library calls.
- if (FuncName.endswith("_chk")) {
- if (FuncName == "__memmove_chk")
+ case LibFunc::memmove_chk:
return optimizeMemMoveChk(CI, Builder);
- else if (FuncName == "__memset_chk")
+ case LibFunc::memset_chk:
return optimizeMemSetChk(CI, Builder);
- else if (FuncName == "__strcpy_chk")
+ case LibFunc::strcpy_chk:
return optimizeStrCpyChk(CI, Builder);
- else if (FuncName == "__stpcpy_chk")
+ case LibFunc::stpcpy_chk:
return optimizeStpCpyChk(CI, Builder);
- else if (FuncName == "__strncpy_chk")
- return optimizeStrNCpyChk(CI, Builder);
- else if (FuncName == "__stpncpy_chk")
+ case LibFunc::stpncpy_chk:
+ case LibFunc::strncpy_chk:
return optimizeStrNCpyChk(CI, Builder);
+ default:
+ return nullptr;
+ }
}
return nullptr;