https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121600
--- Comment #1 from Federico Kircheis <federico at kircheis dot it> --- An even more minimal example (maybe too minimal as it seems code one would not write), although I am not sure if the root cause is the same: https://godbolt.org/z/dfcGG9EW1 ---- int foo(); int bar(int); int baz1( int v ) { switch ( v ) { case 1: return bar(1); case 2: return bar(2); case 3: return bar(3); default: return foo(); } } int baz2( int v ) { int value; switch ( v ) { case 1: value = v; break; case 2: value = v; break; case 3: value = v; break; default: return foo(); } return bar(v); } ----