Is the following OK? Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 230162) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,10 @@ +2015-11-11 Dominique d'Humieres <domi...@lps.ens.fr> + + PR bootstrap/68271 + * cp/parser.h (cp_token): Update pragma_kind to 8. + * c-family/c-pragma.c (c_register_pragma_1): Update the gcc_assert + to 256. + 2015-11-11 Simon Dardis <simon.dar...@imgtec.com> * config/mips/mips.c (mips_breakable_sequence_p): New function. Index: gcc/cp/parser.h =================================================================== --- gcc/cp/parser.h (revision 230162) +++ gcc/cp/parser.h (working copy) @@ -48,7 +48,7 @@ /* Token flags. */ unsigned char flags; /* Identifier for the pragma. */ - ENUM_BITFIELD (pragma_kind) pragma_kind : 6; + ENUM_BITFIELD (pragma_kind) pragma_kind : 8; /* True if this token is from a context where it is implicitly extern "C" */ BOOL_BITFIELD implicit_extern_c : 1; /* True if an error has already been reported for this token, such as a Index: gcc/c-family/c-pragma.c =================================================================== --- gcc/c-family/c-pragma.c (revision 230162) +++ gcc/c-family/c-pragma.c (working copy) @@ -1370,9 +1370,9 @@ id = registered_pragmas.length (); id += PRAGMA_FIRST_EXTERNAL - 1; - /* The C++ front end allocates 6 bits in cp_token; the C front end - allocates 7 bits in c_token. At present this is sufficient. */ - gcc_assert (id < 64); + /* The C++ front end allocates 8 bits in cp_token; the C front end + allocates 8 bits in c_token. At present this is sufficient. */ + gcc_assert (id < 256); } cpp_register_deferred_pragma (parse_in, space, name, id,
Dominique > Le 11 nov. 2015 à 14:14, Jakub Jelinek <ja...@redhat.com> a écrit : > > On Wed, Nov 11, 2015 at 02:11:38PM +0100, Dominique d'Humières wrote: >> The following patch restore bootstrap on darwin >> >> --- ../_clean/gcc/cp/parser.h 2015-11-10 01:54:44.000000000 +0100 >> +++ gcc/cp/parser.h 2015-11-11 12:10:28.000000000 +0100 >> @@ -48,7 +48,7 @@ struct GTY (()) cp_token { >> /* Token flags. */ >> unsigned char flags; >> /* Identifier for the pragma. */ >> - ENUM_BITFIELD (pragma_kind) pragma_kind : 6; >> + ENUM_BITFIELD (pragma_kind) pragma_kind : 8; >> /* True if this token is from a context where it is implicitly extern "C" >> */ >> BOOL_BITFIELD implicit_extern_c : 1; >> /* True if an error has already been reported for this token, such as a >> --- ../_clean/gcc/c-family/c-pragma.c 2015-11-10 01:54:43.000000000 >> +0100 >> +++ gcc/c-family/c-pragma.c 2015-11-11 12:10:25.000000000 +0100 >> @@ -1372,7 +1372,7 @@ c_register_pragma_1 (const char *space, >> >> /* The C++ front end allocates 6 bits in cp_token; the C front end >> allocates 7 bits in c_token. At present this is sufficient. */ >> - gcc_assert (id < 64); >> + gcc_assert (id < 256); >> } >> >> cpp_register_deferred_pragma (parse_in, space, name, id, >> >> OK to commit? > > As written in the PR, please add a ChangeLog entry, don't forget about > PR bootstrap/68271 > line, and please update the 6 and 7 numbers in the comment to 8. > With that the patch is ok. > As a follow-up, we'll remove pragma_kind field in the C++ FE, to shrink the > token by 64 bits. > > Jakub