From: Gerald Pfeifer Subject: widl: Fix the EXPR_ADDRESSOF case in resolve_expression. Message-Id: Date: Tue, 30 Jun 2015 00:21:08 +0200 (CEST) So, this is a case where either indentation is incorrect (and the code weird) or this should be a compound statement (and then I am not sure why we need the assignment given that !result.is_variable). Gerald --- tools/widl/expr.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/widl/expr.c b/tools/widl/expr.c index 7012382..2d79983 100644 --- a/tools/widl/expr.c +++ b/tools/widl/expr.c @@ -568,10 +568,12 @@ static struct expression_type resolve_expression(const struct expr_loc *expr_loc case EXPR_ADDRESSOF: result = resolve_expression(expr_loc, cont_type, e->ref); if (!result.is_variable) + { error_loc_info(&expr_loc->v->loc_info, "address-of operator applied to non-variable type in expression%s%s\n", expr_loc->attr ? " for attribute " : "", expr_loc->attr ? expr_loc->attr : ""); result.is_variable = FALSE; + } result.is_temporary = TRUE; result.type = type_new_pointer(RPC_FC_UP, result.type, NULL); break; -- 2.4.2