https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120358
--- Comment #30 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Forgot to mention that the offending match.pd rule is /* Simplify pointer equality compares using PTA. */ (for neeq (ne eq) (simplify (neeq @0 @1) (if (POINTER_TYPE_P (TREE_TYPE (@0)) && ptrs_compare_unequal (@0, @1)) { constant_boolean_node (neeq != EQ_EXPR, type); }))) and ptrs_compare_unequal unexpectedly returns true (as already hinted in comment #5)