Author: Aaron Ballman Date: 2023-03-21T12:49:45-04:00 New Revision: b904e68f13ba7d4f4aa86a3495e2441c99247671
URL: https://github.com/llvm/llvm-project/commit/b904e68f13ba7d4f4aa86a3495e2441c99247671 DIFF: https://github.com/llvm/llvm-project/commit/b904e68f13ba7d4f4aa86a3495e2441c99247671.diff LOG: No longer issue static lambda pedantic warning for pre-c++2b compat We were accidentally issuing "static lambdas are incompatible with C++ standards before C++2b" with -pedantic because it was an ExtWarn diagnostic rather than a Warning. This corrects the diagnostic category and adds some test coverage. Fixes #61582 Added: Modified: clang/docs/ReleaseNotes.rst clang/include/clang/Basic/DiagnosticParseKinds.td clang/test/Parser/cxx2b-lambdas-ext-warns.cpp Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 6ae71683804d4..c0162cf506cbc 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -241,8 +241,8 @@ Bug Fixes to C++ Support - Fix incorrect deletion of the default constructor of unions in some cases. (`#48416 <https://github.com/llvm/llvm-project/issues/48416>`_) - No longer issue a pre-C++2b compatibility warning in ``-pedantic`` mode - regading overloaded `operator[]` with more than one parmeter. (`#61582 - <https://github.com/llvm/llvm-project/issues/61582>`_) + regading overloaded `operator[]` with more than one parmeter or for static + lambdas. (`#61582 <https://github.com/llvm/llvm-project/issues/61582>`_) Bug Fixes to AST Handling ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td index 243c69a551650..2ad4d98f0ed88 100644 --- a/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1049,7 +1049,7 @@ def err_lambda_template_parameter_list_empty : Error< // C++2b static lambdas def err_static_lambda: ExtWarn< "static lambdas are a C++2b extension">, InGroup<CXX2b>; -def warn_cxx20_compat_static_lambda: ExtWarn< +def warn_cxx20_compat_static_lambda : Warning< "static lambdas are incompatible with C++ standards before C++2b">, InGroup<CXXPre2bCompat>, DefaultIgnore; def err_static_mutable_lambda : Error< diff --git a/clang/test/Parser/cxx2b-lambdas-ext-warns.cpp b/clang/test/Parser/cxx2b-lambdas-ext-warns.cpp index bcb5574a2fe10..3a80f59aba565 100644 --- a/clang/test/Parser/cxx2b-lambdas-ext-warns.cpp +++ b/clang/test/Parser/cxx2b-lambdas-ext-warns.cpp @@ -1,6 +1,7 @@ // RUN: %clang_cc1 -std=c++20 %s -verify=cxx20 // RUN: %clang_cc1 -std=c++2b %s -verify=cxx2b // RUN: %clang_cc1 -std=c++2b -Wpre-c++2b-compat %s -verify=precxx2b +// RUN: %clang_cc1 -std=c++2b -pedantic %s -verify=cxx2b //cxx2b-no-diagnostics _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits