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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
   Target Milestone|---                         |8.2
            Summary|[8 Regression] Strongly     |[8/9 Regression] Strongly
                   |increased stack usage       |increased stack usage

Alexander Monakov <amonakov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2018-06-21
                 CC|                            |amonakov at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
Inlining decisions are not so different between 7/8, the main difference is
gcc-8 translates b::x() into __builtin_unreachable and warns accordingly:

warning: no return statement in function returning non-void [-Wreturn-type]

   b x(b) {}
           ^

and with that change gcc-8 no longer manages to prove that big arrays have
non-overlapping lifetimes.

If I change the source to well-formed 'void x(b) {}', it compiles as desired.

So, assuming the original MySQL source is free of that warning, the testcase is
too aggressively reduced and no longer reflects the original issue. Can you
please re-reduce?

Reply via email to