[PATCH] D67567: [clang-tidy] New check to warn when storing dispatch_once_t in non-static, non-global storage
Stephane Moore via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 26 14:55:31 PDT 2019
stephanemoore added a comment.
Looks good! A couple nits/questions.
Does the check allow variables in anonymous namespaces?
namespace {
dispatch_once_t onceToken;
}
I //think// such variables should satisfy initialization requirements.
If not, can we update the check to not trigger on variables? Either way, can we add a test to verify behavior for variables in anonymous namespaces?
================
Comment at: clang-tools-extra/clang-tidy/darwin/CMakeLists.txt:13
+ clangLex
+ clangSerialization
+ clangTidy
----------------
Is this library necessary?
================
Comment at: clang-tools-extra/clang-tidy/darwin/CMakeLists.txt:16
+ clangTidyUtils
+ clangTooling
+ )
----------------
Is this library necessary?
================
Comment at: clang-tools-extra/clang-tidy/darwin/DispatchOnceNonstaticCheck.cpp:44
+ diag(PD->getTypeSpecStartLoc(),
+ "dispatch_once_ts must have static or global storage duration; "
+ "function parameters should be pointer references");
----------------
"dispatch_once_t variables" to be consistent.
================
Comment at: clang-tools-extra/docs/clang-tidy/checks/darwin-dispatch-once-nonstatic.rst:15
+
+Programmers have also been known to make ``dispatch_once_t``s be members of
+structs/classes, with the intent to lazily perform some expensive struct or
----------------
Maybe rephrase to this:
```
``dispatch_once_t`` variables
```
================
Comment at: clang-tools-extra/docs/clang-tidy/checks/darwin-dispatch-once-nonstatic.rst:16
+Programmers have also been known to make ``dispatch_once_t``s be members of
+structs/classes, with the intent to lazily perform some expensive struct or
+class member initialization only once; however, this violates the libdispatch
----------------
"structs or classes"
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67567/new/
https://reviews.llvm.org/D67567
More information about the cfe-commits
mailing list