diff --git a/clang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp b/clang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp index acffaa30d418e..cf076bb40484f 100644 --- a/clang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp +++ b/clang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp @@ -153,7 +153,6 @@ static const clang::StringRef GlibcFunctions[] = { "::sigsuspend", "::sleep", "::srand48", - "::strerror", "::strsignal", "::strtok", "::tcflow", diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 9b29ab12e1bfa..99e07ad10bd6d 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -172,6 +172,10 @@ Changes in existing checks ` check by fixing false positives when a function name is just prefixed with a targeted function name. +- Improved :doc:`concurrency-mt-unsafe + ` check by fixing a false positive + where ``strerror`` was flagged as MT-unsafe. + - Improved :doc:`misc-const-correctness ` check by adding the option `AllowedTypes`, that excludes specified types from const-correctness diff --git a/clang-tools-extra/test/clang-tidy/checkers/concurrency/mt-unsafe-glibc.cpp b/clang-tools-extra/test/clang-tidy/checkers/concurrency/mt-unsafe-glibc.cpp index 8b137de005a47..14d1912683795 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/concurrency/mt-unsafe-glibc.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/concurrency/mt-unsafe-glibc.cpp @@ -3,6 +3,7 @@ extern unsigned int sleep (unsigned int __seconds); extern int *gmtime (const int *__timer); extern char *dirname (char *__path); +extern char *strerror(int errnum); void foo() { sleep(2); @@ -12,4 +13,6 @@ void foo() { // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: function is not thread safe [concurrency-mt-unsafe] dirname(nullptr); + + strerror(0); }