[clang-tools-extra] r247578 - [clang-tidy] misc-sizeof-container: remove fix-it hints
Alexander Kornienko via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 14 09:51:55 PDT 2015
Author: alexfh
Date: Mon Sep 14 11:51:52 2015
New Revision: 247578
URL: http://llvm.org/viewvc/llvm-project?rev=247578&view=rev
Log:
[clang-tidy] misc-sizeof-container: remove fix-it hints
This turned out to be a rather noisy check, so automated fixes will only do
harm. Remove them completely.
Modified:
clang-tools-extra/trunk/clang-tidy/misc/SizeofContainerCheck.cpp
clang-tools-extra/trunk/test/clang-tidy/misc-sizeof-container.cpp
Modified: clang-tools-extra/trunk/clang-tidy/misc/SizeofContainerCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/SizeofContainerCheck.cpp?rev=247578&r1=247577&r2=247578&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SizeofContainerCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/SizeofContainerCheck.cpp Mon Sep 14 11:51:52 2015
@@ -16,21 +16,6 @@ using namespace clang::ast_matchers;
namespace clang {
namespace tidy {
-namespace {
-
-bool needsParens(const Expr *E) {
- E = E->IgnoreImpCasts();
- if (isa<BinaryOperator>(E) || isa<ConditionalOperator>(E))
- return true;
- if (const auto *Op = dyn_cast<CXXOperatorCallExpr>(E)) {
- return Op->getNumArgs() == 2 && Op->getOperator() != OO_Call &&
- Op->getOperator() != OO_Subscript;
- }
- return false;
-}
-
-} // anonymous namespace
-
void SizeofContainerCheck::registerMatchers(MatchFinder *Finder) {
Finder->addMatcher(
expr(unless(isInTemplateInstantiation()),
@@ -52,31 +37,9 @@ void SizeofContainerCheck::check(const M
const auto *SizeOf =
Result.Nodes.getNodeAs<UnaryExprOrTypeTraitExpr>("sizeof");
- SourceLocation SizeOfLoc = SizeOf->getLocStart();
- auto Diag = diag(SizeOfLoc, "sizeof() doesn't return the size of the "
- "container; did you mean .size()?");
-
- // Don't generate fixes for macros.
- if (SizeOfLoc.isMacroID())
- return;
-
- SourceLocation RParenLoc = SizeOf->getRParenLoc();
-
- // sizeof argument is wrapped in a single ParenExpr.
- const auto *Arg = cast<ParenExpr>(SizeOf->getArgumentExpr());
-
- if (needsParens(Arg->getSubExpr())) {
- Diag << FixItHint::CreateRemoval(
- CharSourceRange::getTokenRange(SizeOfLoc, SizeOfLoc))
- << FixItHint::CreateInsertion(RParenLoc.getLocWithOffset(1),
- ".size()");
- } else {
- Diag << FixItHint::CreateRemoval(
- CharSourceRange::getTokenRange(SizeOfLoc, Arg->getLParen()))
- << FixItHint::CreateReplacement(
- CharSourceRange::getTokenRange(RParenLoc, RParenLoc),
- ".size()");
- }
+ auto Diag =
+ diag(SizeOf->getLocStart(), "sizeof() doesn't return the size of the "
+ "container; did you mean .size()?");
}
} // namespace tidy
Modified: clang-tools-extra/trunk/test/clang-tidy/misc-sizeof-container.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-sizeof-container.cpp?rev=247578&r1=247577&r2=247578&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-sizeof-container.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-sizeof-container.cpp Mon Sep 14 11:51:52 2015
@@ -65,19 +65,14 @@ void f() {
int a = 42 + sizeof(s1);
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: sizeof() doesn't return the size of the container; did you mean .size()? [misc-sizeof-container]
-// CHECK-FIXES: int a = 42 + s1.size();
a = 123 * sizeof(s2);
// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: sizeof() doesn't return the size
-// CHECK-FIXES: a = 123 * s2.size();
a = 45 + sizeof(s2 + "asdf");
// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: sizeof() doesn't return the size
-// CHECK-FIXES: a = 45 + (s2 + "asdf").size();
a = sizeof(v);
// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: sizeof() doesn't return the size
-// CHECK-FIXES: a = v.size();
a = sizeof(std::vector<int>{});
// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: sizeof() doesn't return the size
-// CHECK-FIXES: a = std::vector<int>{}.size();
a = sizeof(a);
a = sizeof(int);
More information about the cfe-commits
mailing list