https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105405
--- Comment #4 from Li Shaohua <shaohua.li at inf dot ethz.ch> --- @Jakub, I agree with you that the above test case may access too far from the red zone. However, for the below test case, I cannot figure out why -O0 again did not report anything. As a user, I would think that *j[5][1]* did not reach too far from the red zone although it might do according to your explanation. $cat a.c struct a { int b[9]; long h }; int i; struct a j[6][1]; main() { if (j[5][1].h) { char k[4]; k; } } $