[PATCH] D67084: [clang-tidy] Fix bugprone-argument-comment bug: negative literal number is not checked.
Yubo Xie via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 4 06:58:43 PDT 2019
xyb updated this revision to Diff 218683.
xyb added a comment.
Update with full diff.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67084/new/
https://reviews.llvm.org/D67084
Files:
clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
clang-tools-extra/test/clang-tidy/bugprone-argument-comment-literals.cpp
Index: clang-tools-extra/test/clang-tidy/bugprone-argument-comment-literals.cpp
===================================================================
--- clang-tools-extra/test/clang-tidy/bugprone-argument-comment-literals.cpp
+++ clang-tools-extra/test/clang-tidy/bugprone-argument-comment-literals.cpp
@@ -67,18 +67,29 @@
// CHECK-MESSAGES: [[@LINE-1]]:9: warning: argument comment missing for literal argument 'fabc' [bugprone-argument-comment]
// CHECK-FIXES: a.foo(/*fabc=*/1.0f);
+ a.foo(-1.0f);
+ // CHECK-MESSAGES: [[@LINE-1]]:9: warning: argument comment missing for literal argument 'fabc' [bugprone-argument-comment]
+ // CHECK-FIXES: a.foo(/*fabc=*/-1.0f);
+
a.foo(1.0);
// CHECK-MESSAGES: [[@LINE-1]]:9: warning: argument comment missing for literal argument 'dabc' [bugprone-argument-comment]
// CHECK-FIXES: a.foo(/*dabc=*/1.0);
+ a.foo(-1.0);
+ // CHECK-MESSAGES: [[@LINE-1]]:9: warning: argument comment missing for literal argument 'dabc' [bugprone-argument-comment]
+ // CHECK-FIXES: a.foo(/*dabc=*/-1.0);
+
int val3 = 10;
a.foo(val3);
+ a.foo(-val3);
float val4 = 10.0;
a.foo(val4);
+ a.foo(-val4);
double val5 = 10.0;
a.foo(val5);
+ a.foo(-val5);
a.foo("Hello World");
// CHECK-MESSAGES: [[@LINE-1]]:9: warning: argument comment missing for literal argument 'strabc' [bugprone-argument-comment]
@@ -96,14 +107,22 @@
// CHECK-MESSAGES: [[@LINE-1]]:9: warning: argument comment missing for literal argument 'dabc' [bugprone-argument-comment]
// CHECK-FIXES: a.foo(/*dabc=*/402.0_km);
+ a.foo(-402.0_km);
+ // CHECK-MESSAGES: [[@LINE-1]]:9: warning: argument comment missing for literal argument 'dabc' [bugprone-argument-comment]
+ // CHECK-FIXES: a.foo(/*dabc=*/-402.0_km);
+
a.foo('A');
// CHECK-MESSAGES: [[@LINE-1]]:9: warning: argument comment missing for literal argument 'chabc' [bugprone-argument-comment]
// CHECK-FIXES: a.foo(/*chabc=*/'A');
g(FOO);
+ g(-FOO);
h(1.0f);
// CHECK-MESSAGES: [[@LINE-1]]:5: warning: argument comment missing for literal argument 'b' [bugprone-argument-comment]
// CHECK-FIXES: h(/*b=*/1.0f);
+ h(-1.0f);
+ // CHECK-MESSAGES: [[@LINE-1]]:5: warning: argument comment missing for literal argument 'b' [bugprone-argument-comment]
+ // CHECK-FIXES: h(/*b=*/-1.0f);
i(__FILE__);
// FIXME Would like the below to add argument comments.
Index: clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
+++ clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
@@ -230,9 +230,11 @@
// Given the argument type and the options determine if we should
// be adding an argument comment.
bool ArgumentCommentCheck::shouldAddComment(const Expr *Arg) const {
+ Arg = Arg->IgnoreImpCasts();
+ if (isa<UnaryOperator>(Arg))
+ Arg = cast<UnaryOperator>(Arg)->getSubExpr();
if (Arg->getExprLoc().isMacroID())
return false;
- Arg = Arg->IgnoreImpCasts();
return (CommentBoolLiterals && isa<CXXBoolLiteralExpr>(Arg)) ||
(CommentIntegerLiterals && isa<IntegerLiteral>(Arg)) ||
(CommentFloatLiterals && isa<FloatingLiteral>(Arg)) ||
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67084.218683.patch
Type: text/x-patch
Size: 3258 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190904/d8a60ffd/attachment.bin>
More information about the cfe-commits
mailing list