https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92689
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The argument p could have been a non const when it was passed to foo. That is outside of the this TU: static int t; void gggg(void) { foo (&t); } void fn(void) { t++; }