[PATCH v3] c++: Add support for -std=c++23
Tue Jan 26 22:50:52 GMT 2021
Running git gcc-verify on this version, I get
ERR: cannot find a ChangeLog location in message
I had to fix the indentation of the ChangeLog entries to make it work.
Probably best to include them in the attachment, e.g. by attaching the
result of git format-patch. It looks like you copied them from the
output of git log, which adds a few unwanted spaces at the beginning;
this is fine for review, but not if the reviewer needs to commit it.
Or you could use git send-email, which is what I do for patches that
aren't in reply to something else.
I went ahead and fixed it up, made a few small tweaks, and am checking
in the following. Thanks!
On 1/24/21 8:18 PM, Paul Fee via Gcc-patches wrote:
> Derived from the changes that added C++2a support in 2017.
> No C++23 features are added here.
> Use of -std=c++23 sets __cplusplus to 202100L.
> $ g++ -std=c++23 -dM -E -x c++ - < /dev/null | grep cplusplus
> #define __cplusplus 202100L
> Changes since v2 (11th Jan 2021):
> * Dropped testsuite change (c++2a to c++20).
> * As suggested by Marek Polacek and Jason Merrill
> Added -std=c++23 since three year cadence is well established.
> Author: Paul Fee <email@example.com>
> Date: Mon Jan 25 00:12:03 2021 +0000
> Add support for -std=c++23
> * doc/cpp.texi (__cplusplus): Document value for -std=c++23
> or -std=gnu++23.
> * doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
> * dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
> (gen_compile_unit_die): Recognise C++23.
> * c-common.h (cxx_dialect): Add cxx23 as a dialect.
> * c.opt: Add options for -std=c++23, std=c++2b, -std=gnu++23
> and -std=gnu++2b
> * c-opts.c (set_std_cxx23): New.
> (c_common_handle_option): Set options when -std=c++23 is enabled.
> (c_common_post_options): Adjust comments.
> (set_std_cxx20): Likewise.
> * lib/target-supports.exp (check_effective_target_c++2a):
> Check for C++2a or C++23.
> (check_effective_target_c++2a_down): New.
> (check_effective_target_c++20_down): New.
> (check_effective_target_c++23_only): New.
> (check_effective_target_c++23): New.
> * g++.dg/cpp23/cplusplus.C: New.
> * include/cpplib.h (c_lang): Add CXX23 and GNUCXX23.
> * init.c (lang_defaults): Add rows for CXX23 and GNUCXX23.
> (cpp_init_builtins): Set __cplusplus to 202100L for C++23.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 12635 bytes
Desc: not available
More information about the Libstdc++