https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66424
--- Comment #2 from Zhendong Su <su at cs dot ucdavis.edu> --- Jakub, I'm not sure that the code is invalid. First, the type of p in fn1 is defaulted to int. Second, all the invocations of fn1 from fn2 are with the same argument 0LL, which int can represent. Also, none of ubsan, Frama-C, and CompCert's reference interpreter complains about the code.