[Bug tree-optimization/106922] [12 Regression] Bogus uninitialized warning on boost::optional<<std::vector<std::string>>>, missed FRE

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 19 14:16:21 GMT 2022


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

--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> ---
So there's a similar missed optimization but it's not caused by the bisected
revision.  The situation is like

float bar, baz;
void foo (int *p, int n)
{
  *p = 0;
  do
    {
      bar = 1.;
      if (*p)
        {
          baz = 2.;
          *p = 0;
        }
    }
  while (--n);
}

where we fail to realize that in the first if (*p), *p stays zero.  I have
a patch that fixes the above but that miscompiles genrecog.cc
merge_into_decision (but no testcase in the testsuite ...).


More information about the Gcc-bugs mailing list