https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106878
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 53550 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53550&action=edit gcc13-pr106878-1.patch Ugh, this is a mess. The verifiers do allow BIT_AND_EXPR (intentionally for realignment) and BIT_{I,X}OR_EXPR (just because it is similar) on pointer types, but since r12-1608-g2f1686ff70b25f BIT_NOT_EXPR is rejected on pointers. I'm afraid allowing just BIT_AND_EXPR and disallowing BIT_{I,X}OR_EXPR or BIT_NOT_EXPR would be a lot of work, this patch is what I spotted during skimming of match.pd to make BIT_{AND,IOR,XOR}_EXPR work on pointer types and not BIT_NOT_EXPR.