diff options
author | Jakub Jelinek <jakub@redhat.com> | 2024-10-07 21:25:22 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2024-10-07 21:25:22 +0200 |
commit | e4c0595ec4ed3cd2f6fb471081a9d2d3960e1672 (patch) | |
tree | 70409b86e70deccbb9c63742ad858ecf19e0fe5e /gcc/system.h | |
parent | c0002a675a92e76d2f326bf4629d8e4127a0c9da (diff) | |
download | gcc-e4c0595ec4ed3cd2f6fb471081a9d2d3960e1672.zip gcc-e4c0595ec4ed3cd2f6fb471081a9d2d3960e1672.tar.gz gcc-e4c0595ec4ed3cd2f6fb471081a9d2d3960e1672.tar.bz2 |
libcpp: Use constexpr for _cpp_trigraph_map initialization for C++14
The _cpp_trigraph_map initialization used to be done for C99+ using
designated initializers, but can't be done that way for C++ because
the designated initializer support in C++ as array designators are just
an extension there and don't allow skipping anything nor going backwards.
But, we can get the same effect using C++14 constexpr constructor.
With the following patch we get rid of the runtime initialization
and the array can be in .rodata.
2024-10-07 Jakub Jelinek <jakub@redhat.com>
* internal.h (_cpp_trigraph_map_s): New type for C++14 or later.
(_cpp_trigraph_map_d): New variable for C++14 or later.
(_cpp_trigraph_map): Define to _cpp_trigraph_map_d.map for C++14 or
later.
* init.cc (init_trigraph_map): Define to nothing for C++14 or later.
(TRIGRAPH_MAP, END, s): Define differently for C++14 or later.
Diffstat (limited to 'gcc/system.h')
0 files changed, 0 insertions, 0 deletions