diff options
author | Paolo Carlini <paolo@gcc.gnu.org> | 2015-07-02 18:54:41 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2015-07-02 18:54:41 +0000 |
commit | fbb22910cfa4e4567b46fc8b74ccfad92fa745d8 (patch) | |
tree | 2aac293a422c002719640bf2767fde8c557ab77b /libcpp/internal.h | |
parent | a05d02b293b299352b9523875e96bf697f96baf4 (diff) | |
download | gcc-fbb22910cfa4e4567b46fc8b74ccfad92fa745d8.zip gcc-fbb22910cfa4e4567b46fc8b74ccfad92fa745d8.tar.gz gcc-fbb22910cfa4e4567b46fc8b74ccfad92fa745d8.tar.bz2 |
re PR preprocessor/53690 ([C++11] \u0000 and \U00000000 are wrongly encoded as U+0001.)
/libcpp
2015-07-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53690
* charset.c (_cpp_valid_ucn): Add cppchar_t * parameter and change
return type to bool. Fix encoding of \u0000 and \U00000000 in C++.
(convert_ucn): Adjust call.
* lex.c (forms_identifier_p): Likewise.
* internal.h (_cpp_valid_ucn): Adjust declaration.
/gcc/testsuite
2015-07-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53690
* g++.dg/cpp/pr53690.C: New.
From-SVN: r225353
Diffstat (limited to 'libcpp/internal.h')
-rw-r--r-- | libcpp/internal.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libcpp/internal.h b/libcpp/internal.h index 95cf9c2..abd464f 100644 --- a/libcpp/internal.h +++ b/libcpp/internal.h @@ -744,9 +744,10 @@ struct normalize_state #define NORMALIZE_STATE_UPDATE_IDNUM(st, c) \ ((st)->previous = (c), (st)->prev_class = 0) -extern cppchar_t _cpp_valid_ucn (cpp_reader *, const unsigned char **, - const unsigned char *, int, - struct normalize_state *state); +extern bool _cpp_valid_ucn (cpp_reader *, const unsigned char **, + const unsigned char *, int, + struct normalize_state *state, + cppchar_t *); extern void _cpp_destroy_iconv (cpp_reader *); extern unsigned char *_cpp_convert_input (cpp_reader *, const char *, unsigned char *, size_t, size_t, |