https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58861
--- Comment #5 from Adam Hirst <adam at aphirst dot karoo.co.uk> --- It's been over a year, and I can confirm that this bug is present for all 3 examples in this thread, in the following version: gcc (GCC) 6.2.1 20160830