[clang-tools-extra] r290756 - [clang-tidy] google-explicit-constructor: ignore macros
Alexander Kornienko via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 30 07:15:14 PST 2016
Author: alexfh
Date: Fri Dec 30 09:15:14 2016
New Revision: 290756
URL: http://llvm.org/viewvc/llvm-project?rev=290756&view=rev
Log:
[clang-tidy] google-explicit-constructor: ignore macros
Modified:
clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp
clang-tools-extra/trunk/test/clang-tidy/google-explicit-constructor.cpp
Modified: clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp?rev=290756&r1=290755&r2=290756&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp Fri Dec 30 09:15:14 2016
@@ -89,6 +89,10 @@ void ExplicitConstructorCheck::check(con
if (const auto *Conversion =
Result.Nodes.getNodeAs<CXXConversionDecl>("conversion")) {
SourceLocation Loc = Conversion->getLocation();
+ // Ignore all macros until we learn to ignore specific ones (e.g. used in
+ // gmock to define matchers).
+ if (Loc.isMacroID())
+ return;
diag(Loc, WarningMessage)
<< Conversion << FixItHint::CreateInsertion(Loc, "explicit ");
return;
Modified: clang-tools-extra/trunk/test/clang-tidy/google-explicit-constructor.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/google-explicit-constructor.cpp?rev=290756&r1=290755&r2=290756&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/google-explicit-constructor.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/google-explicit-constructor.cpp Fri Dec 30 09:15:14 2016
@@ -168,5 +168,11 @@ void f2() {
if (b) {}
(void)(F<double>*)b;
(void)(F<double*>*)b;
-
}
+
+#define DEFINE_STRUCT_WITH_OPERATOR_BOOL(name) \
+ struct name { \
+ operator bool() const; \
+ }
+
+DEFINE_STRUCT_WITH_OPERATOR_BOOL(H);
More information about the cfe-commits
mailing list