It seems that the error is not from the goto. It is from the malformed asm_clobber. For empty asm_clobber list, sparse currently add nil expr into the list. Evaluate will complain about the nil pointer thinking it has a bad type. Any way, this patch should fix it. Please let me know that help you or not. I am going to apply it after the 0.4.3 release. Chris diff --git a/evaluate.c b/evaluate.c index f8343c2..1fb03ed 100644 --- a/evaluate.c +++ b/evaluate.c @@ -3221,7 +3221,7 @@ static void evaluate_asm_statement(struct statement *stmt) FOR_EACH_PTR(stmt->asm_clobbers, expr) { if (!expr) { - sparse_error(stmt->pos, "bad asm output"); + sparse_error(stmt->pos, "bad asm clobbers"); return; } if (expr->type == EXPR_STRING) diff --git a/parse.c b/parse.c index 537055f..6b7d656 100644 --- a/parse.c +++ b/parse.c @@ -1894,7 +1894,8 @@ static struct token *parse_asm_clobbers(struct token *token, struct statement *s do { token = primary_expression(token->next, &expr); - add_expression(clobbers, expr); + if (expr) + add_expression(clobbers, expr); } while (match_op(token, ',')); return token; } -- 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