https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91109

--- Comment #3 from rguenther at suse dot de <rguenther at suse dot de> ---
On Mon, 8 Jul 2019, clyon at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91109
> 
> --- Comment #2 from Christophe Lyon <clyon at gcc dot gnu.org> ---
> Removing the test*() calls from the end, the first failing one is testX().
> However, if I remove all the preceding ones, the test passes.

Ugh.  Not very much simplification.  I suppose trying to trim the
number of test() calls before testX() isn't possible?

> Using -fwhole-program instead of -flto has no effect: the test still fails.

That's good news OTOH and simplifies analysis.

> Adding a printf() call in check() also makes the test pass.

test##S you mean probably.  But yes, that's expected.

Given there's no regression with hard float having testW () might
be important (uses long double).  There may be also ABI differences
(sizeof (long double)) when switching between hard-float and soft-float?
Looking at a cross long double == double == 8 bytes.

Again I'm expecting a target issue here.

The rev. made a difference in inlining because it removes less
stores as redundant during early optimizations.  testN is no
longer inlined.

Reply via email to