llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Oleksandr T. (a-tarasyuk) <details> <summary>Changes</summary> Fixes #<!-- -->109311 --- https://github.com/llvm/llvm-project/issues/109311#issuecomment-2422963686 --- Full diff: https://github.com/llvm/llvm-project/pull/114713.diff 3 Files Affected: - (modified) clang/docs/ReleaseNotes.rst (+2) - (modified) clang/include/clang/Basic/DiagnosticParseKinds.td (+1-1) - (modified) clang/test/Parser/cxx2c-delete-with-message.cpp (+12-1) ``````````diff diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 1372e49dfac03c..3db2aa472902bc 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -464,6 +464,8 @@ Improvements to Clang's diagnostics - Clang now diagnoses ``[[deprecated]]`` attribute usage on local variables (#GH90073). +- Clang now diagnoses misused reasoned ``delete("reason")`` warnings only in pedantic mode. (#GH109311). + Improvements to Clang's time-trace ---------------------------------- diff --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td index 78510e61a639fa..6fbe874c5e6425 100644 --- a/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -971,7 +971,7 @@ def warn_cxx98_compat_defaulted_deleted_function : Warning< "%select{defaulted|deleted}0 function definitions are incompatible with C++98">, InGroup<CXX98Compat>, DefaultIgnore; -def ext_delete_with_message : ExtWarn< +def ext_delete_with_message : Extension< "'= delete' with a message is a C++2c extension">, InGroup<CXX26>; def warn_cxx23_delete_with_message : Warning< "'= delete' with a message is incompatible with C++ standards before C++2c">, diff --git a/clang/test/Parser/cxx2c-delete-with-message.cpp b/clang/test/Parser/cxx2c-delete-with-message.cpp index 1767a080a7dcd8..5796c548632ae4 100644 --- a/clang/test/Parser/cxx2c-delete-with-message.cpp +++ b/clang/test/Parser/cxx2c-delete-with-message.cpp @@ -1,7 +1,17 @@ -// RUN: %clang_cc1 -std=c++23 -fsyntax-only -verify=expected,pre26 -pedantic %s +// RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify=expected -DTEST_NON_PEDANTIC %s +// RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify=expected,pre26 -pedantic %s // RUN: %clang_cc1 -std=c++2c -fsyntax-only -verify=expected,compat -Wpre-c++26-compat %s // RUN: %clang_cc1 -std=c++2c -fsyntax-only -verify %s +#ifdef DTEST_NON_PEDANTIC +namespace GH109311 { +void f() = delete +#if __cpp_deleted_function >= 202403L + ("reason") // ok +#endif +; +} +#else struct S { void a() = delete; void b() = delete(; // expected-error {{expected string literal}} expected-error {{expected ')'}} expected-note {{to match this '('}} @@ -49,3 +59,4 @@ struct C { U f = delete ("hello"); // expected-error {{cannot delete expression of type 'const char[6]'}} }; } +#endif \ No newline at end of file `````````` </details> https://github.com/llvm/llvm-project/pull/114713 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits