https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116216
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Status|UNCONFIRMED |NEW
Last reconfirmed| |2025-01-24
Ever confirmed|0 |1
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed. We have a pointer compare like
if (_16 == 1B)
...
and constant propagated that into
_6 = strcmp (1B, &excl_name);
see also
cc1plus: note: source object is likely at address zero
I have no idea why exactly we end up with <>::begin (&attributes) == 1B,
likely this is a case of a failed non-NULL of &x->b (IIRC this came up
repeatedly, a patch from me didn't get enough feedback).