From: Jeff Law Date: Fri, 2 May 2014 05:46:38 +0000 (-0600) Subject: revert: c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto. X-Git-Tag: releases/gcc-5.1.0~7814 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4bd2511b3c0f8bf4d447d5765c0b3a247c66ca89;p=thirdparty%2Fgcc.git revert: c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto. 2014-05-01 Jeff Law Revert: 2014-04-24 Prathamesh Kulkarni * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto. From-SVN: r209999 --- diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 8fc20cf2c813..4931e79e0d00 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,11 @@ +2014-05-01 Jeff Law + + Revert: + + 2014-04-24 Prathamesh Kulkarni + * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to + avoid goto. + 2014-05-02 Marek Polacek PR c/60784 @@ -88,11 +96,6 @@ (process_init_element): Add location_t parameter. Pass loc to output_init_element. -2014-04-24 Prathamesh Kulkarni - - * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to - avoid goto. - 2014-04-24 Jakub Jelinek * c-parser.c (c_parser_omp_atomic): Allow seq_cst before diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index c22c4abcb263..7947355c2150 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -6529,29 +6529,30 @@ 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 { - /* sizeof ( type-name ). */ - c_inhibit_evaluation_warnings--; - in_sizeof--; - return c_expr_sizeof_type (expr_loc, type_name); + 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); } 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. */