llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-tools-extra @llvm/pr-subscribers-clang-tidy Author: Peiqi Li (voyager-jhk) <details> <summary>Changes</summary> Use the syntactic form of an empty InitListExpr instead of falling back to the semantic form. Fixes #<!-- -->220222 --- Full diff: https://github.com/llvm/llvm-project/pull/220548.diff 2 Files Affected: - (modified) clang-tools-extra/clang-tidy/readability/TrailingCommaCheck.cpp (+4-2) - (modified) clang-tools-extra/test/clang-tidy/checkers/readability/trailing-comma-cxx11.cpp (+10) ``````````diff diff --git a/clang-tools-extra/clang-tidy/readability/TrailingCommaCheck.cpp b/clang-tools-extra/clang-tidy/readability/TrailingCommaCheck.cpp index cb1a33ba09233..d687980ed0999 100644 --- a/clang-tools-extra/clang-tidy/readability/TrailingCommaCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/TrailingCommaCheck.cpp @@ -122,9 +122,11 @@ void TrailingCommaCheck::checkEnumDecl(const EnumDecl *Enum, void TrailingCommaCheck::checkInitListExpr( const InitListExpr *InitList, const MatchFinder::MatchResult &Result) { // We need to use non-empty syntactic form for correct source locations. - if (const InitListExpr *SynInitInitList = InitList->getSyntacticForm(); - SynInitInitList && SynInitInitList->getNumInits() > 0) + if (const InitListExpr *SynInitInitList = InitList->getSyntacticForm()) { + if (SynInitInitList->getNumInits() == 0) + return; InitList = SynInitInitList; + } const bool IsSingleLine = isSingleLine( {InitList->getBeginLoc(), InitList->getEndLoc()}, *Result.SourceManager); diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/trailing-comma-cxx11.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/trailing-comma-cxx11.cpp index 9f37db2c837c3..5d836b7727082 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/readability/trailing-comma-cxx11.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/readability/trailing-comma-cxx11.cpp @@ -54,3 +54,13 @@ struct PackSingle { PackSingle<int> p1; PackSingle<int, double, char> p3; + +struct WithDefault { int foo = 1; }; +void takesTwo(WithDefault, int); + +void emptyInitListWithDefaultMember() { + takesTwo(WithDefault{}, 1); + int a[] = {1,}; + // CHECK-MESSAGES: :[[@LINE-1]]:15: warning: initializer list should not have a trailing comma + // CHECK-FIXES: int a[] = {1}; +} `````````` </details> https://github.com/llvm/llvm-project/pull/220548 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
