Re: bad asm goto ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux