On Fri, Apr 13, 2018, 7:53 PM Paolo Carlini <paolo.carl...@oracle.com> wrote:
> Hi again, > > On 14/04/2018 00:12, Paolo Carlini wrote: > > Hi, > > > > On 13/04/2018 19:45, Jason Merrill wrote: > >> Ah, I see. The problem is that even though convert_to_integer_1 was > >> called with dofold false, we lose that when it calls convert(). Why > >> not recurse directly to convert_to_integer_1 with the underlying type? > >> That would avoid the undesired folding. > > Interesting. I had no idea that this seemingly simple error-recovery > > issue was ultimately due to a substantive if latent issue in > > convert.c. Anyway, in the meanwhile I tried a few variants of direct > > recursion without much success, my boostraps all failed pretty quickly > > and pretty badly. However the below - which isn't far from the spirit > > of your analysis, I think - is holding up well, at least bootstrap + > > C++ testsuite are definitely OK. Should I continue testing it over the > > weekend? > The below seems much better, also bootstraps fine and I'm now fully > testing it. > > Thanks, > Paolo. > > PS: no idea why earlier today I wasted a lot of time trying to > completely avoid maybe_fold_build1_loc :( > Ok if testing passes. Jason >