=?utf-8?q?Björn?= Svensson <bjorn.a.svens...@est.tech> Message-ID: In-Reply-To: <llvm.org/llvm/llvm-project/pull/135...@github.com>
llvmbot wrote: <!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-tidy Author: Björn Svensson (bjosv) <details> <summary>Changes</summary> PR #<!-- -->82952 introduced regex matching for `CheckedFunctions` in `UnusedReturnValueCheck` which is used by the checker `cert-err33-c`. Add a testcase and fix false positives by adding end-of-string to target regex's. --- Patch is 24.69 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/135160.diff 2 Files Affected: - (modified) clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp (+177-177) - (modified) clang-tools-extra/test/clang-tidy/checkers/cert/err33-c.c (+9) ``````````diff diff --git a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp index 26befe0de59ae..cc092a9627c5f 100644 --- a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp @@ -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$;" + "^::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$;"... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/135160 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits