Hi Vladimir,

on 2020/11/6 下午10:49, Vladimir Makarov wrote:
> 
> On 2020-11-06 1:15 a.m., Kewen.Lin wrote:
>> Hi,
>>
>> As PR97705 shows, my commit r11-4637 caused some dumping
>> comparison difference error on pass ira.  It exposed one
>> issue about the newly introduced function remove_scratches,
>> which can increase the largest pseudo reg number if it
>> succeeds, later some function will use the max_reg_num()
>> to get the latest max_regno, when iterating the numbers
>> we can access some data structures which are allocated as
>> the previous max_regno, some out of array bound accesses
>> can occur, the failure can be random since the values
>> beyond the array could be random.
>>
>> This patch is to free/reinit/recompute the relevant data
>> structures that is regstat_n_sets_and_refs and reg_info_p
>> to ensure we won't access beyond some array bounds.
>>
>> Bootstrapped/regtested on powerpc64le-linux-gnu P9 and
>> powerpc64-linux-gnu P8.
>>
>> Any thoughts?  Is it a reasonable fix?
>>
> Sure, Kewen.  A bit unexpected to see lambda to use for this but I checked 
> and found couple places in GCC where lambdas are already used.

Thanks for your prompt review!

Yeah, gcc11 build requires C++11 support as noted in changes.html.

> 
> The patch is ok.  Please, commit it to the mainline.

Thanks.  Committed in r11-4827.

BR,
Kewen

Reply via email to