https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91227
--- Comment #18 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I don't expect people to do such comparisons with addresses of local variables directly. It is plausible that they have a memmove-like function, and once it gets inlined the compiler can see that, at a particular call site, it's doing such comparisons involving addresses of local variables. The question then is whether this might result in problems if e.g. the comparisons say two arrays are both before and after each other and the memmove-like function isn't prepared for that. And, then, whether we say that's OK and such a function needs to cast to uintptr_t as the way to make something that's valid in C-with-ABI-boundaries into something that works in GNU C in the presence of (possibly LTO) inlining.