From 541a50e20702a8046fe5076742611354cb6dd0f3 Mon Sep 17 00:00:00 2001 From: Joachim Priesner Date: Mon, 20 Jun 2022 13:30:02 +0100 Subject: [PATCH] [clang-tidy] bugprone-argument-comment: Ignore calls to user-defined literals 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 | 2 +- .../test/clang-tidy/checkers/bugprone-argument-comment-literals.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp index 3836e4c..396b36d 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp @@ -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. diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone-argument-comment-literals.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone-argument-comment-literals.cpp index d1f98bd..d576c18 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/bugprone-argument-comment-literals.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone-argument-comment-literals.cpp @@ -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_); -- 2.7.4