On Wed, Jan 31, 2024 at 08:53:00AM -0500, Jason Merrill wrote: > On 1/31/24 03:40, Richard Biener wrote: > > On Wed, Jan 31, 2024 at 12:19 AM Marek Polacek <pola...@redhat.com> wrote: > > > > > > Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk? > > > > > > -- >8 -- > > > We plan to deprecate -fconcepts-ts in GCC 15 and remove the > > > flag_concepts_ts > > > code. This note is an admonishing reminder to convert the Concepts TS > > > code to C++20 Concepts. > > > > What does "deprecated in GCC 15" mean? Given you output the notice with > > GCC 14 it would be better to state when it's going to be removed - > > it's effectively > > "deprecated" right now then? Or will it continue to "work" forever > > until it bitrots?
Sorry for the wrong choice of words. I meant deprecated now, removed later. > Agreed, it's deprecated now. We talked about it having no effect in GCC 15; > the message could say that. Or we could leave it vague and just say it's > deprecated. > > Please also update invoke.texi. Like this? -- >8 -- We plan to remove -fconcepts-ts in GCC 15 and thus remove the flag_concepts_ts code. This note is an admonishing reminder to convert the Concepts TS code to C++20 Concepts. gcc/c-family/ChangeLog: * c-opts.cc (c_common_post_options): Add an inform saying that -fconcepts-ts is deprecated and will be removed in GCC 15. gcc/ChangeLog: * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14. --- gcc/c-family/c-opts.cc | 5 +++++ gcc/doc/invoke.texi | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc index b38a1225ac4..b845aff2226 100644 --- a/gcc/c-family/c-opts.cc +++ b/gcc/c-family/c-opts.cc @@ -1139,6 +1139,11 @@ c_common_post_options (const char **pfilename) if (cxx_dialect >= cxx20 || flag_concepts_ts) flag_concepts = 1; + /* -fconcepts-ts will be removed in GCC 15. */ + if (flag_concepts_ts) + inform (input_location, "%<-fconcepts-ts%> is deprecated and will be " + "removed in GCC 15; please convert your code to C++20 concepts"); + /* -fimmediate-escalation has no effect when immediate functions are not supported. */ if (flag_immediate_escalation && cxx_dialect < cxx20) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index eb931b984e8..ca2c0e90452 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -3204,7 +3204,9 @@ the language standard, so @option{-fconcepts} defaults to on. Some constructs that were allowed by the earlier C++ Extensions for Concepts Technical Specification, ISO 19217 (2015), but didn't make it into the standard, can additionally be enabled by -@option{-fconcepts-ts}. +@option{-fconcepts-ts}. The option @option{-fconcepts-ts} was deprecated +in GCC 14 and may be removed in GCC 15; users are expected to convert +their code to C++20 concepts. @opindex fconstexpr-depth @item -fconstexpr-depth=@var{n} base-commit: f7935beef7b02fbba0adf33fb2ba5c0a27d7e9ff -- 2.43.0