https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109867
--- Comment #3 from Arsen Arsenović <arsen at gcc dot gnu.org> --- (In reply to Arsen Arsenović from comment #2) > this corresponds to the four switches emitted for the coroutine > implementation after morphing these fns into coroutine functions. the other > cases are unreachable except by corruption of the frame, perhaps we should > emit calls to either __builtin_unreachable or (IMO, better) some diagnostic > hook (perhaps the best of both worlds by emitting a call to a UBsan hook or > somesuch). > > anyway, the diagnostic is unactionable by the user and hence bad anyway ah, never mind, we emit traps in the default case (which is fine), meaning we have a default. the reason the warning happens is that we don't use finish_case_label, so the analysis later fails to find the default label since we never registered it properly