[PATCH] D67744: [clang-tidy] Fix bugprone-argument-comment-check to correctly ignore implicit constructors.
Yitzhak Mandelbaum via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 19 06:13:11 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL372317: [clang-tidy] Fix bugprone-argument-comment-check to correctly ignore implicit… (authored by ymandel, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D67744?vs=220787&id=220853#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67744/new/
https://reviews.llvm.org/D67744
Files:
clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp
clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp
Index: clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp
===================================================================
--- clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp
@@ -63,6 +63,28 @@
f3(/*With_Underscores=*/false);
}
+namespace IgnoresImplicit {
+struct S {
+ S(int x);
+ int x;
+};
+
+struct T {
+ // Use two arguments (one defaulted) because simplistic check for implicit
+ // constructor looks for only one argument. We need to default the argument so
+ // that it will still be triggered implicitly. This is not contrived -- it
+ // comes up in real code, for example std::set(std::initializer_list...).
+ T(S s, int y = 0);
+};
+
+void k(T arg1);
+
+void mynewtest() {
+ int foo = 3;
+ k(/*arg1=*/S(foo));
+}
+} // namespace IgnoresImplicit
+
namespace ThisEditDistanceAboveThreshold {
void f4(int xxx);
void g() { f4(/*xyz=*/0); }
Index: clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp
===================================================================
--- clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp
+++ clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp
@@ -337,7 +337,7 @@
llvm::makeArrayRef(Call->getArgs(), Call->getNumArgs()));
} else {
const auto *Construct = cast<CXXConstructExpr>(E);
- if (Construct->getNumArgs() == 1 &&
+ if (Construct->getNumArgs() > 0 &&
Construct->getArg(0)->getSourceRange() == Construct->getSourceRange()) {
// Ignore implicit construction.
return;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67744.220853.patch
Type: text/x-patch
Size: 1658 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190919/8a51fd0a/attachment-0001.bin>
More information about the cfe-commits
mailing list