On Tue, 3 Jul 2018, Martin Sebor wrote:

> Committed to trunk in r86274.  Jakub/Richard, can you please
> also review and approve the corresponding fix for the release
> branches?

If it is a regression and the patch was approved for trunk it is
automatically OK for release branches without further review unless
you think it is too invasive.

Richard.

> Martin
> 
> On 07/03/2018 06:32 PM, Jeff Law wrote:
> > On 07/03/2018 04:50 PM, Martin Sebor wrote:
> > > In computing the size of expected output for non-constant floating
> > > arguments the sprintf pass doesn't consider the possibility that
> > > the argument value may be not finite (i.e., it can be infinity or
> > > NaN).  Infinities and NaNs are formatted as "inf" or "infinity"
> > > and "nan".  As a result, any floating directive can produce as
> > > few bytes on output as three for an non-finite argument, when
> > > the least amount directives such as %f produce for finite
> > > arguments is 8.
> > > 
> > > The attached patch adjusts the floating point code to correctly
> > > reflect the lower bound.
> > > 
> > > Martin
> > > 
> > > gcc-86274.diff
> > > 
> > > 
> > > PR tree-optimization/86274 - SEGFAULT when logging std::to_string(NAN)
> > > 
> > > gcc/ChangeLog:
> > > 
> > >   PR tree-optimization/86274
> > >   * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify
> > >   precondition.
> > >   (format_floating): Correct handling of infinities and NaNs.
> > > 
> > > gcc/testsuite/ChangeLog:
> > > 
> > >   PR tree-optimization/86274
> > >   * gcc.dg/tree-ssa/builtin-sprintf-9.c: New test.
> > >   * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust.
> > >   * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Same.
> > >   * gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same.
> > >   * gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Same.
> > >   * gcc.dg/tree-ssa/builtin-sprintf.c: Same.
> > >   * gcc.dg/tree-ssa/pr83198.c: Same.
> > OK
> > jeff
> > 
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 
21284 (AG Nuernberg)

Reply via email to