On Tue, Jul 21, 2009 at 10:15:49PM +0100, Ramsay Jones wrote: > Josh Triplett wrote: > > On Sat, Jul 18, 2009 at 09:41:46PM +0100, Ramsay Jones wrote: > >> These warnings were issued by gcc v3.4.4, but not by gcc v4.1.2. > >> So I guess gcc probably found these warnings to be too noisy ... > > [...] > >> --- a/parse.c > >> +++ b/parse.c > >> @@ -2616,6 +2616,8 @@ struct token *external_declaration(struct token *token, struct symbol_list **lis > >> case SYM_ENUM: > >> case SYM_RESTRICT: > >> base_type->ident = ident; > >> + default: > >> + break; > >> } > > > > I don't think you want to add defaults like this just to avoid warnings. > > Warnings like that can help when adding a new item to an enum, to find > > the places where you need to extend the code to hand the new item. And > > since current GCC doesn't even issue the warning by default, it seems > > even more unnecessary to add that default case. > > > > OK... > > So, if I understand your argument, in order to make the best use of these > warnings, then the correct change would look like the diff given below, > and (for more up-to-date gcc) add -Wswitch-enum to CFLAGS (at least > occasionally). [...] > diff --git a/parse.c b/parse.c > index e5ad867..afe39c3 100644 > --- a/parse.c > +++ b/parse.c > @@ -2616,6 +2616,23 @@ struct token *external_declaration(struct token *token, struct symbol_list **lis > case SYM_ENUM: > case SYM_RESTRICT: > base_type->ident = ident; > + break; > + case SYM_UNINITIALIZED: > + case SYM_PREPROCESSOR: > + case SYM_BASETYPE: > + case SYM_NODE: > + case SYM_PTR: > + case SYM_FN: > + case SYM_ARRAY: > + case SYM_TYPEDEF: > + case SYM_TYPEOF: > + case SYM_MEMBER: > + case SYM_BITFIELD: > + case SYM_LABEL: > + case SYM_FOULED: > + case SYM_KEYWORD: > + case SYM_BAD: > + break; This represents exactly why more recent GCC defaults this warning to off. ;) No, I don't think writing the code this way helps. I think it makes more sense to leave the warning off and not bother placating older versions of GCC. - Josh Triplett -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html