[clang-tidy] bugprone-argument-comment: Ignore calls to user-defined literals
authorJoachim Priesner <llvm-project-704996@jspam.de>
Mon, 20 Jun 2022 12:30:02 +0000 (13:30 +0100)
committerNathan James <n.james93@hotmail.co.uk>
Mon, 20 Jun 2022 12:30:30 +0000 (13:30 +0100)
Without this change, code such as "f(/*param=*/1_op)" will check the
comment twice, once for the parameter of f (correct) and once for
the parameter of operator""_op (likely incorrect). The change removes
only the second check.

Reviewed By: njames93, LegalizeAdulthood

Differential Revision: https://reviews.llvm.org/D125885

clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
clang-tools-extra/test/clang-tidy/checkers/bugprone-argument-comment-literals.cpp

index 3836e4c..396b36d 100644 (file)
@@ -60,7 +60,7 @@ void ArgumentCommentCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
 
 void ArgumentCommentCheck::registerMatchers(MatchFinder *Finder) {
   Finder->addMatcher(
-      callExpr(unless(cxxOperatorCallExpr()),
+      callExpr(unless(cxxOperatorCallExpr()), unless(userDefinedLiteral()),
                // NewCallback's arguments relate to the pointed function,
                // don't check them against NewCallback's parameter names.
                // FIXME: Make this configurable.
index d1f98bd..d576c18 100644 (file)
@@ -29,7 +29,7 @@ void h(double b);
 void i(const char *c);
 void j(int a, int b, int c);
 
-double operator"" _km(long double);
+double operator"" _km(long double value);
 
 void test() {
   A a;
@@ -171,6 +171,8 @@ void test() {
   g((1));
   // FIXME But we should not add argument comments here.
   g(_Generic(0, int : 0));
+
+  402.0_km;
 }
 
 void f(bool _with_underscores_);