[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-26 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov abandoned this revision. ASDenysPetrov added a comment. Guys! I've moved my work to PthreadLockChecker https://reviews.llvm.org/D85984. You are welcome to look at it. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85431/new/ https://reviews.llvm.org/D85431 ___

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-11 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ > You're on the right track but your checker repeats `PthreadLockChecker` > word-by-word. Like, you can find answers to all your questions (eg., "how to > use `isLiveRegion`?") by reading that checker. C++ functions aren't any > different from C functions; t

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-11 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ added a comment. You're on the right track but your checker repeats `PthreadLockChecker` word-by-word. Like, you can find answers to all your questions (eg., "how to use `isLiveRegion`?") by reading that checker. C++ functions aren't any different from C functions; that's an extremely minor

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-11 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ > Umm, why don't you extend `PthreadLockChecker` instead? First of all I wanted to try to go through all the steps, since it's my first checker. The second is that I considered `PthreadLockChecker` designed for C-functions. Another reason is that it better h

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-10 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ added a comment. Umm, why don't you extend `PthreadLockChecker` instead? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85431/new/ https://reviews.llvm.org/D85431 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.o

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 284373. ASDenysPetrov edited the summary of this revision. ASDenysPetrov added a comment. Added recursive_mutex support. Please, look at a test file on TODOs. I want to cover those cases in the future. Could you advise me something on it? CHANGES SIN

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 284353. ASDenysPetrov added a comment. Aded enum FuncIdKind to define function Ids. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85431/new/ https://reviews.llvm.org/D85431 Files: clang/include/clang/StaticAnalyzer/Checkers/Checkers.td cl

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/ThreadPrimitivesChecker.cpp:46 + +REGISTER_SET_WITH_PROGRAMSTATE(LockedMutexes, SVal) + vsavchenko wrote: > vsavchenko wrote: > > You should also cleanup and remove dead symbols fr

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-07 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 283916. ASDenysPetrov added a comment. @vsavchenko Made changes due to your remarks. Thanks you. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85431/new/ https://reviews.llvm.org/D85431 Files: clang/include/clang/StaticAnalyzer/Checkers/Ch

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-06 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. It is an interesting checker, but it seems that this kind of checker is extremely hard in single TU/top-down analysis. It feels like it's going to produce hell a lot of false positives in the wild. Also `mutex` is usually a global variable - the nemesis of any static

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-06 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: NoQ, vsavchenko, xazax.hun, steakhal, baloghadamsoftware, dcoughlin, Szelethus. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, martong, Charusso, dkrupp, donat.nagy, mikhail.ramalho, a.sidorin, rnkov