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