On Sat, Aug 01, 2015 at 07:09:06AM -0400, Tony Camuso wrote: > On 07/31/2015 07:46 PM, Christopher Li wrote: > >On Thu, Jul 30, 2015 at 4:45 AM, Tony Camuso <tcamuso@xxxxxxxxxx> wrote: > >> > >>I thought it would be less intrusive, since I don't know how useful > >>this would be to others. > >> > >>If you prefer a switch, I will do that. > > > >I agree that this should be run time behavior. > > > >+ > >+#if defined NOWARN || defined NOERR > >+ return token->next; > >+#else > > > >What is up with this change? It is not output warning or not. > >It affect the parsing as well. If sparse can't bail out properly, > >this should be a separate patch. > > > >Chris > > > > Hi, Chris. > > I've since submitted a runtime patch (3/3 V3) with a switch as a > response to this patch, but it basically does the same thing here. > > Consider the case where the source contains something like this... > > struct foo { > union { > int number; > int *pointer; > }; > }; > > There being no ident for the union within the struct, we get the warning, > "missing identifier in declaration" etc. If so, that's actually a bug in Sparse; anonymous unions should be allowed without warning: $ cat test.c struct foo { union { int number; int *pointer; }; }; $ gcc -Wall -Wextra -c test.c -o /dev/null $ They have a well-defined semantic meaning, and they're standardized in C11, just not in C89 or C99. - 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