After analyzing net/sunrpc/xprtsock.i, I managed to reproduce the problem with the following test case: #define barrier() __asm__ __volatile__("": : :"memory") static void f(void) { barrier(); l: barrier(); } Apparently sparse doesn't like __asm__ __volatile__ after a label. Looks like the change to enable attributes on labels makes Sparse interpret the __asm__ as an attribute on the label, not as a statement. If I locally revert the label attributes change, aec53c938c34c47cdbdd6824552e0f2a5104b1cb, this test case compiles without warning, as does net/sunrpc/xprtsock.c. The label attributes change needs some additional work, to make it only handle attribute and __attribute__, and nothing else. - Josh Triplett
Attachment:
signature.asc
Description: OpenPGP digital signature