https://gcc.gnu.org/bugzilla/show_bug.cgi?id=4210
--- Comment #30 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- At the point where the then block starts being processed (and, thus, warnings may be given) it wouldn't be known whether there are labels in there or not; cf. the discussion in bug 68193 regarding such warnings and _Generic. If you did things based on settings on entry to if (0), you'd need some way to end that setting (i.e. restore that from the containing block) early on encountering a label (allowing appropriately for nested if (0), of course).