https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81194
--- Comment #14 from Peter Bergner <bergner at gcc dot gnu.org> --- ...or maybe simpler even would be: Index: gcc/cfgexpand.c =================================================================== --- gcc/cfgexpand.c (revision 249649) +++ gcc/cfgexpand.c (working copy) @@ -3566,7 +3566,13 @@ expand_gimple_stmt_1 (gimple *stmt) case GIMPLE_PREDICT: break; case GIMPLE_SWITCH: - expand_case (as_a <gswitch *> (stmt)); + { + gswitch *swtch = as_a <gswitch *> (stmt); + if (gimple_switch_num_labels (swtch) == 1) + expand_goto (CASE_LABEL (gimple_switch_default_label (swtch))); + else + expand_case (swtch); + } break; case GIMPLE_ASM: expand_asm_stmt (as_a <gasm *> (stmt));