Message ID | AANLkTik3OLbW=sM1PFi8uazBHiJbPD06d0ns2z0DQzzN@mail.gmail.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
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
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 --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;