https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103597
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Testcase without the >s #define E(c, e) if (c) e int foo (int n) { switch (n) { case 0: E (1, return 0); case 1: return 1; } return 2; } In C we actually warn about this since the warning has been introduced.