On Fri, Feb 23, 2007 at 02:59:26PM -0500, Pavel Roskin wrote: > P.S. The breakage has nothing to do to Linux changes. It was caused by > the patch called "Make the ptrlist using the sparse allocator". Undoing > the patch fixes the problem. > No, that was not it. The bug does not trigger if I remove "-O" or remove the recent struct attribute patch. You make me guilt for 5 mins. But the real bugs is match_idents did not end with NULL. This patch should fix it: Chris Fix a bug that match_idents forget to end with NULL Pavel Roskin manage to hit this bug with struct st { char c; } __attribute__ ((aligned(2))); struct st s1; struct st s2; Signed-Off-By: Christopher Li <sparse@xxxxxxxxxxx> Index: sparse/parse.c =================================================================== --- sparse.orig/parse.c 2007-02-23 14:33:28.000000000 -0800 +++ sparse/parse.c 2007-02-23 14:36:16.000000000 -0800 @@ -861,7 +861,7 @@ static struct token *handle_attributes(s apply_ctype(token->pos, &thistype, ctype); continue; } - if (match_idents(token, &asm_ident, &__asm_ident, &__asm___ident)) { + if (match_idents(token, &asm_ident, &__asm_ident, &__asm___ident, NULL)) { struct expression *expr; token = expect(token->next, '(', "after asm"); token = parse_expression(token->next, &expr); - 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