[clang-tools-extra] [clang-tidy] new check readability-mark-static (PR #90830)

Oliver Stöneberg via cfe-commits cfe-commits at lists.llvm.org
Thu May 2 03:25:13 PDT 2024


================
@@ -0,0 +1,26 @@
+.. title:: clang-tidy - readability-mark-static
+
+readability-mark-static
+=======================
+
+Detects variable and function can be marked as static.
+
+Static functions and variables are scoped to a single file. Marking functions
+and variables as static helps to better remove dead code. In addition, it gives
+the compiler more information and can help compiler make more aggressive
+optimizations.
+
----------------
firewave wrote:

Did some research but did not find the case I remembered (it might have variable templates though):
- anonymous namespaces do not have external linkage until C++11: https://en.cppreference.com/w/cpp/language/namespace#Unnamed_namespaces / https://en.cppreference.com/w/cpp/language/storage_duration#Linkage
- `static` variable templates do not have internal linkage until C++14: https://en.cppreference.com/w/cpp/language/storage_duration#Linkage

Interesting tidbit that enumerations have external linkage.

https://github.com/llvm/llvm-project/pull/90830


More information about the cfe-commits mailing list