On Thu, Apr 23, 2020 at 08:40:10AM -0700, Richard Henderson wrote: > On 4/23/20 2:00 AM, Philippe Mathieu-Daudé wrote: > >>> @@ -1885,12 +1896,17 @@ static char *tcg_get_arg_str_ptr(TCGContext *s, > >>> char *buf, int buf_size, > >>> { > >>> int idx = temp_idx(ts); > >>> > >>> - if (ts->temp_global) { > >>> + switch (ts->kind) { > >>> + case TEMP_FIXED: > >>> + case TEMP_GLOBAL: > >>> pstrcpy(buf, buf_size, ts->name); > >>> - } else if (ts->temp_local) { > >>> + break; > >>> + case TEMP_LOCAL: > >>> snprintf(buf, buf_size, "loc%d", idx - s->nb_globals); > >>> - } else { > >>> + break; > >>> + case TEMP_NORMAL: > >>> snprintf(buf, buf_size, "tmp%d", idx - s->nb_globals); > >>> + break; > >>> } > >> > >> Hmm, why this switch doesn't have: > >> > >> default: > >> g_assert_not_reached(); > >> > >> like the other ones? > > > > ... then all switch should have a default case, as noticed Aleksandar. > > There's a bit of a conflict between wanting to use -Werror -Wswitch, and > making > sure every switch has a default. > > With the former, you get a compiler error of the form > > error: enumeration value ‘FOO’ not handled in switch > > which lets you easily find places that need adjustment enumerators are added.
FYI, -Wswitch-enum can deal with this. This gives a warning about missing enum cases, even if there is a default statement: [quote] '-Wswitch-enum' Warn whenever a 'switch' statement has an index of enumerated type and lacks a 'case' for one or more of the named codes of that enumeration. 'case' labels outside the enumeration range also provoke warnings when this option is used. The only difference between '-Wswitch' and this option is that this option gives a warning about an omitted enumeration code even if there is a 'default' label. [/quote] If we want to have a default: in every switch, then we could also use -Wswitch-default too ! Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|