From 5213bc46472b1181aa6111b5d4814a0fbca69282 Mon Sep 17 00:00:00 2001 From: Luc Van Oostenryck Date: Wed, 18 May 2005 01:35:38 +0200 Subject: [PATCH] [PATCH] avoid a crash on bad asm statement This patch avoid a segfault while printing a warning message about bad asm statement like: void foo(void) { asm( "" : "" : "r" (0)); } Signed-Off-by: Luc Van Oostenryck Signed-off-by: Linus Torvalds --- evaluate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evaluate.c b/evaluate.c index ea728440..25bea639 100644 --- a/evaluate.c +++ b/evaluate.c @@ -2449,7 +2449,7 @@ static void evaluate_asm_statement(struct statement *stmt) case 1: /* Constraint */ state = 2; if (!expr || expr->type != EXPR_STRING) { - warning(expr->pos, "asm output constraint is not a string"); + warning(expr ? expr->pos : stmt->pos, "asm output constraint is not a string"); *THIS_ADDRESS(expr) = NULL; continue; } @@ -2480,7 +2480,7 @@ static void evaluate_asm_statement(struct statement *stmt) case 1: /* Constraint */ state = 2; if (!expr || expr->type != EXPR_STRING) { - warning(expr->pos, "asm input constraint is not a string"); + warning(expr ? expr->pos : stmt->pos, "asm input constraint is not a string"); *THIS_ADDRESS(expr) = NULL; continue; } -- 2.11.4.GIT