[PATCH] D72213: [clang-tidy] Add `bugprone-reserved-identifier` to flag usages of reserved C++ names

Mark de Wever via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Jan 4 13:38:42 PST 2020


Mordante added a comment.

I like this change, but I don't feel qualified to fully review the patch.

I wonder what happens if the project already contains a suggested fix, for example:

  #define __FOO(X) ...
  #define _FOO(X) __FOO(X)
  #define FOO(X) _FOO(X)

will it suggest:

  #define FOO(X) ...
  #define FOO(X) FOO(X)
  #define FOO(X) FOO(X)

?



================
Comment at: clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp:70
+                                      const bool IsInGlobalNamespace) {
+  return IsInGlobalNamespace && Name.size() > 1 && Name[0] == '_';
+}
----------------
`Name.size() > 1` doesn't catch `_` in the global namespace. Catching `_` will probably also cause issues with the automatic renaming.
What about renaming `__`?


================
Comment at: clang-tools-extra/test/clang-tidy/checkers/bugprone-reserved-identifier-invert.cpp:21
+// CHECK-MESSAGES: :[[@LINE-1]]:8: warning: declaration uses identifier 'Helper', which is not a reserved identifier [bugprone-reserved-identifier]
+// CHECK-FIXES: {{^}}struct __Helper {};{{$}}
+struct _helper2 {};
----------------
Why suggesting `__Helper` instead of  `_Helper` ?


================
Comment at: clang-tools-extra/test/clang-tidy/checkers/bugprone-reserved-identifier-invert.cpp:56
+// CHECK-MESSAGES: :[[@LINE-1]]:17: warning: declaration uses identifier 'Up', which is not a reserved identifier [bugprone-reserved-identifier]
+// CHECK-FIXES: {{^}}template <class __Up>{{$}}
+inline reference_wrapper<const Up>
----------------
Likewise why not `_Up` ?


================
Comment at: clang-tools-extra/test/clang-tidy/checkers/bugprone-reserved-identifier.cpp:68
+
+} // namespace __ns
+
----------------
Should it not suggest to change this to `namespace ns` ?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D72213





More information about the cfe-commits mailing list