https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90037
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-04-10 CC| |jakub at gcc dot gnu.org, | |law at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I guess for this warning we don't have anything like predicate-aware analysis that would find out that while we have: ... <bb 25> [local count: 484313586]: # unum_167 = PHI <unum_54(39), unum_34(41)> # iftmp.1_152 = PHI <iftmp.1_174(39), iftmp.1_113(41)> # PT = null { D.3872 D.3873 } (escaped, escaped heap) # ALIGN = 8, MISALIGN = 0 # u_154 = PHI <0B(39), u_87(41)> _19 = *iftmp.1_152; ... # PT = nonlocal iftmp.1_174 = separator_63(D) + 1; ... # PT = nonlocal null # iftmp.1_113 = PHI <0B(11), iftmp.1_119(42)> we have also: _25 = iftmp.1_113 != 0B; _130 = error_msg_46 == 0B; _127 = _25 & _130; if (_127 != 0) goto <bb 25>; [100.00%] else goto <bb 31>; [0.00%] in bb 41 and thus iftmp.1_113 is known to be non-NULL.