http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54046
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-07-20 12:39:30 UTC --- void foo (void) __attribute__((noreturn)); struct A { ~A () {} }; bool check (int x) { A z; switch (x) { case 0: return false; default: foo (); break; } } warns the same.