From b904e68f13ba7d4f4aa86a3495e2441c99247671 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Tue, 21 Mar 2023 12:48:13 -0400 Subject: [PATCH] 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 --- clang/docs/ReleaseNotes.rst | 4 ++-- clang/include/clang/Basic/DiagnosticParseKinds.td | 2 +- clang/test/Parser/cxx2b-lambdas-ext-warns.cpp | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 6ae7168..c0162cf 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 `_) - No longer issue a pre-C++2b compatibility warning in ``-pedantic`` mode - regading overloaded `operator[]` with more than one parmeter. (`#61582 - `_) + regading overloaded `operator[]` with more than one parmeter or for static + lambdas. (`#61582 `_) Bug Fixes to AST Handling ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td index 243c69a..2ad4d98 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; -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, 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 bcb5574..3a80f59 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 -- 2.7.4