https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88775
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Seems it is the: /* When the addresses are not directly of decls compare base and offset. This implements some remaining parts of fold_comparison address comparisons but still no complete part of it. Still it is good enough to make fold_stmt not regress when not dispatching to fold_binary. */ opt in match.pd. So, we'd need to verify that the problematic case can't happen (one address being after the last byte in one of the objects and the other the beginning of another one).