[clang-tools-extra] [clang-tidy] Fix `cert-err33-c` to ignore functions with same prefixes as target (PR #135160)

Carlos Galvez via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 11 01:08:28 PDT 2025


=?utf-8?q?Bj=C3=B6rn?= Svensson <bjorn.a.svensson at est.tech>,
=?utf-8?q?Bj=C3=B6rn?= Svensson <bjorn.a.svensson at est.tech>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/135160 at github.com>


================
@@ -50,183 +50,183 @@ namespace {
 // with NULL argument and in this case the check is not applicable:
 // `mblen, mbrlen, mbrtowc, mbtowc, wctomb, wctomb_s`.
 // FIXME: The check can be improved to handle such cases.
-const llvm::StringRef CertErr33CCheckedFunctions = "^::aligned_alloc;"
-                                                   "^::asctime_s;"
-                                                   "^::at_quick_exit;"
-                                                   "^::atexit;"
-                                                   "^::bsearch;"
-                                                   "^::bsearch_s;"
-                                                   "^::btowc;"
-                                                   "^::c16rtomb;"
-                                                   "^::c32rtomb;"
-                                                   "^::calloc;"
-                                                   "^::clock;"
-                                                   "^::cnd_broadcast;"
-                                                   "^::cnd_init;"
-                                                   "^::cnd_signal;"
-                                                   "^::cnd_timedwait;"
-                                                   "^::cnd_wait;"
-                                                   "^::ctime_s;"
-                                                   "^::fclose;"
-                                                   "^::fflush;"
-                                                   "^::fgetc;"
-                                                   "^::fgetpos;"
-                                                   "^::fgets;"
-                                                   "^::fgetwc;"
-                                                   "^::fopen;"
-                                                   "^::fopen_s;"
-                                                   "^::fprintf;"
-                                                   "^::fprintf_s;"
-                                                   "^::fputc;"
-                                                   "^::fputs;"
-                                                   "^::fputwc;"
-                                                   "^::fputws;"
-                                                   "^::fread;"
-                                                   "^::freopen;"
-                                                   "^::freopen_s;"
-                                                   "^::fscanf;"
-                                                   "^::fscanf_s;"
-                                                   "^::fseek;"
-                                                   "^::fsetpos;"
-                                                   "^::ftell;"
-                                                   "^::fwprintf;"
-                                                   "^::fwprintf_s;"
-                                                   "^::fwrite;"
-                                                   "^::fwscanf;"
-                                                   "^::fwscanf_s;"
-                                                   "^::getc;"
-                                                   "^::getchar;"
-                                                   "^::getenv;"
-                                                   "^::getenv_s;"
-                                                   "^::gets_s;"
-                                                   "^::getwc;"
-                                                   "^::getwchar;"
-                                                   "^::gmtime;"
-                                                   "^::gmtime_s;"
-                                                   "^::localtime;"
-                                                   "^::localtime_s;"
-                                                   "^::malloc;"
-                                                   "^::mbrtoc16;"
-                                                   "^::mbrtoc32;"
-                                                   "^::mbsrtowcs;"
-                                                   "^::mbsrtowcs_s;"
-                                                   "^::mbstowcs;"
-                                                   "^::mbstowcs_s;"
-                                                   "^::memchr;"
-                                                   "^::mktime;"
-                                                   "^::mtx_init;"
-                                                   "^::mtx_lock;"
-                                                   "^::mtx_timedlock;"
-                                                   "^::mtx_trylock;"
-                                                   "^::mtx_unlock;"
-                                                   "^::printf_s;"
-                                                   "^::putc;"
-                                                   "^::putwc;"
-                                                   "^::raise;"
-                                                   "^::realloc;"
-                                                   "^::remove;"
-                                                   "^::rename;"
-                                                   "^::scanf;"
-                                                   "^::scanf_s;"
-                                                   "^::setlocale;"
-                                                   "^::setvbuf;"
-                                                   "^::signal;"
-                                                   "^::snprintf;"
-                                                   "^::snprintf_s;"
-                                                   "^::sprintf;"
-                                                   "^::sprintf_s;"
-                                                   "^::sscanf;"
-                                                   "^::sscanf_s;"
-                                                   "^::strchr;"
-                                                   "^::strerror_s;"
-                                                   "^::strftime;"
-                                                   "^::strpbrk;"
-                                                   "^::strrchr;"
-                                                   "^::strstr;"
-                                                   "^::strtod;"
-                                                   "^::strtof;"
-                                                   "^::strtoimax;"
-                                                   "^::strtok;"
-                                                   "^::strtok_s;"
-                                                   "^::strtol;"
-                                                   "^::strtold;"
-                                                   "^::strtoll;"
-                                                   "^::strtoul;"
-                                                   "^::strtoull;"
-                                                   "^::strtoumax;"
-                                                   "^::strxfrm;"
-                                                   "^::swprintf;"
-                                                   "^::swprintf_s;"
-                                                   "^::swscanf;"
-                                                   "^::swscanf_s;"
-                                                   "^::thrd_create;"
-                                                   "^::thrd_detach;"
-                                                   "^::thrd_join;"
-                                                   "^::thrd_sleep;"
-                                                   "^::time;"
-                                                   "^::timespec_get;"
-                                                   "^::tmpfile;"
-                                                   "^::tmpfile_s;"
-                                                   "^::tmpnam;"
-                                                   "^::tmpnam_s;"
-                                                   "^::tss_create;"
-                                                   "^::tss_get;"
-                                                   "^::tss_set;"
-                                                   "^::ungetc;"
-                                                   "^::ungetwc;"
-                                                   "^::vfprintf;"
-                                                   "^::vfprintf_s;"
-                                                   "^::vfscanf;"
-                                                   "^::vfscanf_s;"
-                                                   "^::vfwprintf;"
-                                                   "^::vfwprintf_s;"
-                                                   "^::vfwscanf;"
-                                                   "^::vfwscanf_s;"
-                                                   "^::vprintf_s;"
-                                                   "^::vscanf;"
-                                                   "^::vscanf_s;"
-                                                   "^::vsnprintf;"
-                                                   "^::vsnprintf_s;"
-                                                   "^::vsprintf;"
-                                                   "^::vsprintf_s;"
-                                                   "^::vsscanf;"
-                                                   "^::vsscanf_s;"
-                                                   "^::vswprintf;"
-                                                   "^::vswprintf_s;"
-                                                   "^::vswscanf;"
-                                                   "^::vswscanf_s;"
-                                                   "^::vwprintf_s;"
-                                                   "^::vwscanf;"
-                                                   "^::vwscanf_s;"
-                                                   "^::wcrtomb;"
-                                                   "^::wcschr;"
-                                                   "^::wcsftime;"
-                                                   "^::wcspbrk;"
-                                                   "^::wcsrchr;"
-                                                   "^::wcsrtombs;"
-                                                   "^::wcsrtombs_s;"
-                                                   "^::wcsstr;"
-                                                   "^::wcstod;"
-                                                   "^::wcstof;"
-                                                   "^::wcstoimax;"
-                                                   "^::wcstok;"
-                                                   "^::wcstok_s;"
-                                                   "^::wcstol;"
-                                                   "^::wcstold;"
-                                                   "^::wcstoll;"
-                                                   "^::wcstombs;"
-                                                   "^::wcstombs_s;"
-                                                   "^::wcstoul;"
-                                                   "^::wcstoull;"
-                                                   "^::wcstoumax;"
-                                                   "^::wcsxfrm;"
-                                                   "^::wctob;"
-                                                   "^::wctrans;"
-                                                   "^::wctype;"
-                                                   "^::wmemchr;"
-                                                   "^::wprintf_s;"
-                                                   "^::wscanf;"
-                                                   "^::wscanf_s;";
+const llvm::StringRef CertErr33CCheckedFunctions = "^::aligned_alloc$;"
----------------
carlosgalvezp wrote:

Ah, if it's an alias, that explains why. Nevermind then!

https://github.com/llvm/llvm-project/pull/135160


More information about the cfe-commits mailing list