https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82909
--- Comment #2 from Fred J. Tydeman <tydeman at tybor dot com> --- I agree with your analysis. The behavior is C standard version dependent with respect to the 'if' statement. There is no bug in gcc.