Commit 4bd2511b by Jeff Law Committed by Jeff Law

revert: c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto.

2014-05-01  Jeff Law  <law@redhat.com>

	Revert:

	2014-04-24  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
	* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
	avoid goto.

From-SVN: r209999
parent 6a358dcb
2014-05-01 Jeff Law <law@redhat.com>
Revert:
2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
avoid goto.
2014-05-02 Marek Polacek <polacek@redhat.com> 2014-05-02 Marek Polacek <polacek@redhat.com>
PR c/60784 PR c/60784
...@@ -88,11 +96,6 @@ ...@@ -88,11 +96,6 @@
(process_init_element): Add location_t parameter. Pass loc to (process_init_element): Add location_t parameter. Pass loc to
output_init_element. output_init_element.
2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
avoid goto.
2014-04-24 Jakub Jelinek <jakub@redhat.com> 2014-04-24 Jakub Jelinek <jakub@redhat.com>
* c-parser.c (c_parser_omp_atomic): Allow seq_cst before * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
......
...@@ -6529,29 +6529,30 @@ c_parser_sizeof_expression (c_parser *parser) ...@@ -6529,29 +6529,30 @@ c_parser_sizeof_expression (c_parser *parser)
return ret; return ret;
} }
if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) 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 ). */ expr = c_parser_postfix_expression_after_paren_type (parser,
c_inhibit_evaluation_warnings--; type_name,
in_sizeof--; expr_loc);
return c_expr_sizeof_type (expr_loc, type_name); goto sizeof_expr;
} }
/* sizeof ( type-name ). */
c_inhibit_evaluation_warnings--;
in_sizeof--;
return c_expr_sizeof_type (expr_loc, type_name);
} }
else else
{ {
expr_loc = c_parser_peek_token (parser)->location; expr_loc = c_parser_peek_token (parser)->location;
expr = c_parser_unary_expression (parser); 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, "%<sizeof%> 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, "%<sizeof%> applied to a bit-field");
return c_expr_sizeof_expr (expr_loc, expr);
} }
/* Parse an alignof expression. */ /* Parse an alignof expression. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment