https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111210
--- Comment #2 from Shaohua Li <shaohua.li at inf dot ethz.ch> --- (In reply to Alexander Monakov from comment #1) > 'c' is called with 'd' pointing to 'long e[2]', so > > return *(int *)(d + 1); > > is an aliasing violation (dereferencing a pointer to an incompatible type). Thanks for the quick diagnosis. I tried to enable -Wall -Wextra -pedantic but got no warning about the test case. Could you share how you diagnose this issue?