> On Aug 15, 2022, at 9:28 AM, Nathan Sidwell <nat...@acm.org> wrote:
> 
> On 8/2/22 10:44, Qing Zhao wrote:
>> Hi, Nathan,
>> I am adding a new bitfield “decl_not_flexarray” in “tree_decl_common”  
>> (gcc/tree-core.h) for the new gcc feature -fstrict-flex-arrays.
>> ====
>> diff --git a/gcc/tree-core.h b/gcc/tree-core.h
>> index ea9f281f1cc..458c6e6ceea 100644
>> --- a/gcc/tree-core.h
>> +++ b/gcc/tree-core.h
>> @@ -1813,7 +1813,10 @@ struct GTY(()) tree_decl_common {
>>      TYPE_WARN_IF_NOT_ALIGN.  */
>>   unsigned int warn_if_not_align : 6;
>> -  /* 14 bits unused.  */
>> +  /* In FIELD_DECL, this is DECL_NOT_FLEXARRAY.  */
>> +  unsigned int decl_not_flexarray : 1;
> 
> Is it possible to invert the meaning here -- set the flag if it /IS/ a 
> flexible array? negated flags can be confusing, and I see your patch sets it 
> to '!is_flexible_array (...)' anyway?
> 
>> +
>> +  /* 13 bits unused.  */
>>   /* UID for points-to sets, stable over copying from inlining.  */
>>   unsigned int pt_uid;
>> ====
>> (Please refer to the following for details:
>> https://gcc.gnu.org/pipermail/gcc-patches/2022-July/598556.html
>> https://gcc.gnu.org/pipermail/gcc-patches/2022-July/598965.html
> 
> 
> 
>> )
>> Richard mentioned the following:
>> "I've not seen it so you are probably missing it - the bit has to be
>> streamed in tree-streamer-{in,out}.cc to be usable from LTO.  Possibly
>> C++ module streaming also needs to handle it.”
>> I have figured out that where to add the handling of the bit in 
>> “tree-streamer-{in, out}.cc,
>> However, it’s quite difficult for me to locate where should I add the 
>> handling of this new bit in
>> C++ module streaming,  could you please help me on this?
> 
> 
> add it in to trees_{in,out}::core_bools.  You could elide streaming for 
> non-FIELD_DECL decls.

Got it. Thanks a lot.

Qing
> 
> Hope that helps.
> 
> nathan
> 
> 
> 
>> Thanks a lot for your help.
>> Qing
> 
> 
> -- 
> Nathan Sidwell

Reply via email to