From 3e4fbd9185ee1e972d8923e02b98b1414611233b Mon Sep 17 00:00:00 2001 From: Prathamesh Kulkarni Date: Thu, 24 Apr 2014 21:29:45 +0000 Subject: c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto. * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto. From-SVN: r209765 --- gcc/c/c-parser.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'gcc/c/c-parser.c') diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 6eb235c..c229bdb 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -6514,30 +6514,29 @@ c_parser_sizeof_expression (c_parser *parser) return ret; } if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) + expr = c_parser_postfix_expression_after_paren_type (parser, + type_name, + expr_loc); + else { - expr = c_parser_postfix_expression_after_paren_type (parser, - type_name, - expr_loc); - goto sizeof_expr; + /* sizeof ( type-name ). */ + c_inhibit_evaluation_warnings--; + in_sizeof--; + return c_expr_sizeof_type (expr_loc, type_name); } - /* sizeof ( type-name ). */ - c_inhibit_evaluation_warnings--; - in_sizeof--; - return c_expr_sizeof_type (expr_loc, type_name); } else { expr_loc = c_parser_peek_token (parser)->location; expr = c_parser_unary_expression (parser); - sizeof_expr: - c_inhibit_evaluation_warnings--; - in_sizeof--; - mark_exp_read (expr.value); - if (TREE_CODE (expr.value) == COMPONENT_REF - && DECL_C_BIT_FIELD (TREE_OPERAND (expr.value, 1))) - error_at (expr_loc, "% applied to a bit-field"); - return c_expr_sizeof_expr (expr_loc, expr); } + c_inhibit_evaluation_warnings--; + in_sizeof--; + mark_exp_read (expr.value); + if (TREE_CODE (expr.value) == COMPONENT_REF + && DECL_C_BIT_FIELD (TREE_OPERAND (expr.value, 1))) + error_at (expr_loc, "% applied to a bit-field"); + return c_expr_sizeof_expr (expr_loc, expr); } /* Parse an alignof expression. */ -- cgit v1.1