[PATCH] D58818: [clang-tidy] added cppcoreguidelines-use-raii-locks check

Jonas Toth via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Mar 2 13:15:33 PST 2019


JonasToth added inline comments.


================
Comment at: test/clang-tidy/cppcoreguidelines-use-raii-locks.cpp:4
+// Mock implementation of std::mutex
+namespace std {
+struct mutex {
----------------
lewmpk wrote:
> JonasToth wrote:
> > Please add more tests
> > 
> > What happens for this?
> > ```
> > void foo() {
> >   std::mutex m;
> >   m.lock();
> >   m.unlock();
> >   m.lock();
> >   m.unlock();
> >   m.try_lock();
> >   m.lock();
> >   m.unlock();
> > }
> > ```
> > 
> > - Please add tests for templates, where the lock-type is a template parameter
> > - please add tests where the locking happens within macros
> > - please add tests for usage within loops
> > - where cases like `std::mutex m1; std::mutex &m2 = m1; // usage`. This should not be diagnosed, right?
> I've added a test case for your example, templates, macros and loops.
> I can't catch the case `std::mutex m1; std::mutex &m2 = m1; // usage`, but i can catch trivial cases.
Yes, your not supposed to catch those. But i feel things like this should be documented. In theory catching this particular case is possible (we do similar analysis for `const`.
But it is totally acceptable to leave as is!


Repository:
  rCTE Clang Tools Extra

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58818/new/

https://reviews.llvm.org/D58818





More information about the cfe-commits mailing list