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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-03-13
   Target Milestone|---                         |6.4
            Summary|C++ excessive stack usage   |[6/7 Regression] C++
                   |(no stack reuse)            |excessive stack usage (no
                   |                            |stack reuse)
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
  test::db::ManagedObjectConst::ManagedObjectConst (&D.2393, _1);
  test::db::FieldInfo::FieldInfo (&D.2394, &D.2393, 11, 0);

D.2393 (and other temporaries from other uses) live throughout the whole
function (no clobbers).  With GCC 5 we have

  _64 = test::db::ManagedObjectConst::getFieldDefault (_59, 11, 0);
  test::db::ManagedObjectConst::ManagedObjectConst (&D.2187, _59);
  test::db::FieldInfo::FieldInfo (&D.2188, &D.2187, 11, 0);
  _68 = test::db::compare (&D.2188, _64);
  D.2188 ={v} {CLOBBER};
  D.2187 ={v} {CLOBBER};
  if (_68 != 0)
    goto <bb 5>;

so they have clobbers.

For trunk ehcleanup1 removes them.

Reply via email to