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

Reply via email to