diff mbox

bad asm goto ?

Message ID AANLkTik3OLbW=sM1PFi8uazBHiJbPD06d0ns2z0DQzzN@mail.gmail.com (mailing list archive)
State Mainlined, archived
Headers show

Commit Message

Christopher Li Oct. 26, 2010, 3:10 a.m. UTC
None

Comments

Harvey Harrison Aug. 22, 2011, 4:01 a.m. UTC | #1
Ping, noticed you moving towards a 0.4.4 release and this was still not applied.

Harvey

On Mon, Oct 25, 2010 at 8:10 PM, Christopher Li <sparse@chrisli.org> wrote:
> 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@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Christopher Li Aug. 23, 2011, 9:55 p.m. UTC | #2
On Sun, Aug 21, 2011 at 9:01 PM, Harvey Harrison
<harvey.harrison@gmail.com> wrote:
> Ping, noticed you moving towards a 0.4.4 release and this was still not applied.

It falls through the cracks. I just add a test case and commit the fix.

Thanks for the reminder.

Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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;