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

Reply via email to