https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115582
--- Comment #4 from tangyixuan <tangyixuan at mail dot dlut.edu.cn> --- Thanks for your concerns. The type of "a.x" is converted to char in "(char *)a + 1", and it may be confused in clang under -O0 vs -O{2,3}. gcc-15 outputs the "int" value, but the previous versions like gcc-5.3 produce the "char" value I guess.