diff options
author | Jakub Jelinek <jakub@redhat.com> | 2021-12-01 10:21:20 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2021-12-01 10:21:20 +0100 |
commit | c264208e161830a5642ee3125871c23110508462 (patch) | |
tree | d9ceae0bad702467a9c2e5042ddbe7a7d7066040 /libcpp/charset.c | |
parent | 35f2c098c81118020b1d288cd739108c8747a520 (diff) | |
download | gcc-c264208e161830a5642ee3125871c23110508462.zip gcc-c264208e161830a5642ee3125871c23110508462.tar.gz gcc-c264208e161830a5642ee3125871c23110508462.tar.bz2 |
libcpp: Enable P1949R7 for C++98 too [PR100977]
On Mon, Nov 29, 2021 at 05:53:58PM -0500, Jason Merrill wrote:
> I'm inclined to go ahead and change C++98 as well; I doubt anyone is relying
> on the particular C++98 extended character set rules, and we already accept
> the union of the different sets when not pedantic.
Ok, here is an incremental patch to do that also for -std={c,gnu}++98.
2021-12-01 Jakub Jelinek <jakub@redhat.com>
PR c++/100977
* init.c (struct lang_flags): Remove cxx23_identifiers.
(lang_defaults): Remove cxx23_identifiers initializers.
(cpp_set_lang): Don't copy cxx23_identifiers.
* include/cpplib.h (struct cpp_options): Adjust comment about
c11_identifiers. Remove cxx23_identifiers field.
* lex.c (warn_about_normalization): Use cplusplus instead of
cxx23_identifiers.
* charset.c (ucn_valid_in_identifier): Likewise.
* g++.dg/cpp/ucnid-1.C: Adjust expected diagnostics.
* g++.dg/cpp/ucnid-1-utf8.C: Likewise.
Diffstat (limited to 'libcpp/charset.c')
-rw-r--r-- | libcpp/charset.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/libcpp/charset.c b/libcpp/charset.c index bcfd3ad..0854677 100644 --- a/libcpp/charset.c +++ b/libcpp/charset.c @@ -955,14 +955,12 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c, valid_flags = C99 | CXX | C11 | CXX23; if (CPP_PEDANTIC (pfile)) { - if (CPP_OPTION (pfile, cxx23_identifiers)) + if (CPP_OPTION (pfile, cplusplus)) valid_flags = CXX23; else if (CPP_OPTION (pfile, c11_identifiers)) valid_flags = C11; else if (CPP_OPTION (pfile, c99)) valid_flags = C99; - else if (CPP_OPTION (pfile, cplusplus)) - valid_flags = CXX; } if (! (ucnranges[mn].flags & valid_flags)) return 0; @@ -1021,7 +1019,7 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c, return 2; } - if (CPP_OPTION (pfile, cxx23_identifiers)) + if (CPP_OPTION (pfile, cplusplus)) invalid_start_flags = NXX23; else if (CPP_OPTION (pfile, c11_identifiers)) invalid_start_flags = N11; |