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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2023-04-17
             Blocks|                            |24639
           Keywords|                            |missed-optimization
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
                 CC|                            |rguenth at gcc dot gnu.org

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Well, it actually diagnoses

<bb 2> [local count: 1073741824]:
f_4(ab) = f_9(D);
...

:/

So this is really an artifact of imperfect SSA form where we fail to
prune the PHI for 'f' before the first setjmp (into-SSA rewrite doesn't
honor scopes).

It's ethread that produces this copy by threading the loop header checks
and turning their PHIs into copies.

Btw, uninit diagnostics rely on the default defs eventually appearing in
PHIs for the may uninit case so we cannot simply skip such copies.

SSA_NAME_OCCURS_IN_ABNORMAL_PHI is also quite sticky, it's there from
original SSA and not removed after inlining ry_init.  When removing
an abnormal edge we'd have to check all other uses of destination PHI
arguments to validate clearing the flag.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639
[Bug 24639] [meta-bug] bug to track all Wuninitialized issues

Reply via email to