https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108398
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- -fsanitize=undefined with no diagnostics doesn't mean code is UB free. This testcase is still invalid. Before the first g--;, g == &e, so g-- will set g to g - sizeof (int). That is UB.