https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68880
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- For future reference, [4.9 Regression] means a regression in gcc 4.9 compared to previous versions. What you meant is [5/6 Regression], and you should have put 4.9.4 (or another version) in the "Known to work" field. It doesn't matter here though, because as stated above this is undefined behaviour not a regression (IMHO refusing to compile this code is a nice side effect of François's change).