https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111028
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- Yeah, if you subtract two pointers like (char*)&node - (char*)_node_offset then both have to point to the same object (otherwise the behavior is undefined) and you get a difference in the number of elements. That difference isn't a pointer. The correct fix is as suggested, this isn't a bug in GCC.