llvm-project/clang-tools-extra/test
Vasily Kulikov cac5be495e
[clang-tidy] implement concurrency-mt-unsafe
Checks for some thread-unsafe functions against a black list
of known-to-be-unsafe functions. Usually they access static variables
without synchronization (e.g. gmtime(3)) or utilize signals
in a racy way (e.g. sleep(3)).

The patch adds a check instead of auto-fix as thread-safe alternatives
usually have API with an additional argument
(e.g. gmtime(3) v.s. gmtime_r(3)) or have a different semantics
(e.g. exit(3) v.s. __exit(3)), so it is a rather tricky
or non-expected fix.

An option specifies which functions in libc should be considered
thread-safe, possible values are `posix`, `glibc`,
or `any` (the most strict check). It defaults to 'any' as it is
unknown what target libc type is - clang-tidy may be run
on linux but check sources compiled for other *NIX.

The check is used in Yandex Taxi backend and has caught
many unpleasant bugs. A similar patch for coroutine-unsafe API
is coming next.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D90944
2020-11-30 12:27:17 +03:00
..
Unit Add .py extension to clang-tools-extra lit cfg files 2019-03-29 02:46:31 +00:00
clang-apply-replacements [clang-apply-replacements] No longer deduplucates replacements from the same TU 2020-03-25 09:36:36 +00:00
clang-change-namespace Update redirected output file. 2020-06-19 23:30:16 -07:00
clang-doc [clang-doc] Improving Markdown Output 2020-03-06 17:37:08 -08:00
clang-include-fixer [lit] Fix another test case that r374652 missed 2019-10-16 23:58:58 +00:00
clang-move [clang-tools-extra] NFC: Fix trivial typo in documents and comments 2020-04-05 15:28:40 +09:00
clang-query clang-tidy and clang-query wont crash with invalid command line options 2020-05-31 17:41:29 +01:00
clang-reorder-fields
clang-tidy [clang-tidy] implement concurrency-mt-unsafe 2020-11-30 12:27:17 +03:00
modularize Revert r351208 (which was a revert of r350892). 2019-01-17 20:21:44 +00:00
pp-trace [pp-trace] Modernize the code 2019-03-24 06:55:08 +00:00
.clang-format
CMakeLists.txt [CMake][CTE] Add "check-clang-extra-..." targets to test only a particular Clang extra tool 2020-09-25 13:32:56 +02:00
lit.cfg.py Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00
lit.site.cfg.py.in Add an explicit toggle for the static analyzer in clang-tidy 2020-09-10 10:48:17 -04:00