aboutsummaryrefslogtreecommitdiff
path: root/libcpp/include
diff options
context:
space:
mode:
authorPaul Fee <paul.f.fee@gmail.com>2021-01-25 01:18:30 +0000
committerJason Merrill <jason@redhat.com>2021-01-26 17:11:34 -0500
commit78739c2df788ee5c868d998a6333d453317d8711 (patch)
tree8b2912606a50618a4c05b01ed1712f18f2a6f1e1 /libcpp/include
parent96253f069ead0736536de803b06a8053a85039a6 (diff)
downloadgcc-78739c2df788ee5c868d998a6333d453317d8711.zip
gcc-78739c2df788ee5c868d998a6333d453317d8711.tar.gz
gcc-78739c2df788ee5c868d998a6333d453317d8711.tar.bz2
c++: Add support for -std=c++23
Derived from the changes that added C++2a support in 2017. r8-3237-g026a79f70cf33f836ea5275eda72d4870a3041e5 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 gcc/ * 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. gcc/c-family/ * 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. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_c++2a): Check for C++2a or C++23. (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. libcpp/ * 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.
Diffstat (limited to 'libcpp/include')
-rw-r--r--libcpp/include/cpplib.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
index bcc50ba..4467c73 100644
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -173,7 +173,8 @@ enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11, CLK_GNUC17, CLK_GNUC2X,
CLK_STDC2X,
CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11,
CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX17, CLK_CXX17,
- CLK_GNUCXX20, CLK_CXX20, CLK_ASM};
+ CLK_GNUCXX20, CLK_CXX20, CLK_GNUCXX23, CLK_CXX23,
+ CLK_ASM};
/* Payload of a NUMBER, STRING, CHAR or COMMENT token. */
struct GTY(()) cpp_string {