llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Younan Zhang (zyn0217) <details> <summary>Changes</summary> This is a follow-up for https://github.com/llvm/llvm-project/pull/69224, where the previous fix failed to handle the parentheses around the expression. Fixes https://github.com/llvm/llvm-project/issues/86361. --- Full diff: https://github.com/llvm/llvm-project/pull/86401.diff 3 Files Affected: - (modified) clang/docs/ReleaseNotes.rst (+2) - (modified) clang/lib/Sema/SemaTemplateVariadic.cpp (+1-1) - (modified) clang/test/SemaCXX/pr61460.cpp (+1) ``````````diff diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 8054d90fc70f93..1bf7d7fcda2a4a 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -439,6 +439,8 @@ Bug Fixes to C++ Support - Fix a crash when instantiating a lambda that captures ``this`` outside of its context. Fixes (#GH85343). - Fix an issue where a namespace alias could be defined using a qualified name (all name components following the first `::` were ignored). +- A follow-up fix was added for (#GH61460), where the fix previously overlooked the parentheses + around the expression. (#GH86361) Bug Fixes to AST Handling ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/lib/Sema/SemaTemplateVariadic.cpp b/clang/lib/Sema/SemaTemplateVariadic.cpp index 903fbfd18e779c..1c4a09bca4e3ff 100644 --- a/clang/lib/Sema/SemaTemplateVariadic.cpp +++ b/clang/lib/Sema/SemaTemplateVariadic.cpp @@ -415,7 +415,7 @@ bool Sema::DiagnoseUnexpandedParameterPack(Expr *E, // FunctionParmPackExpr, but diagnosing unexpected parameter packs may still // see such an expression in a lambda body. // We'll bail out early in this case to avoid triggering an assertion. - if (isa<FunctionParmPackExpr>(E) && getEnclosingLambda()) + if (isa<FunctionParmPackExpr>(E->IgnoreParens()) && getEnclosingLambda()) return false; SmallVector<UnexpandedParameterPack, 2> Unexpanded; diff --git a/clang/test/SemaCXX/pr61460.cpp b/clang/test/SemaCXX/pr61460.cpp index 471b1b39d23c2b..44a11c30b95b59 100644 --- a/clang/test/SemaCXX/pr61460.cpp +++ b/clang/test/SemaCXX/pr61460.cpp @@ -2,6 +2,7 @@ template <typename... Ts> void g(Ts... p1s) { (void)[&](auto... p2s) { ([&] { p1s; p2s; }, ...); }; + (void)[&](auto... p2s) { ([&] { (p1s); p2s; }, ...); }; } void f1() { `````````` </details> https://github.com/llvm/llvm-project/pull/86401 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits