Not sure if this a good idea, but it seemed to me that goto sizeof_expr; wasn't really required in c_parser_sizeof_expression. Bootstrapped and regression tested on x8_64-unknown-linux-gnu Ok for trunk ?
* c-parser.c (c_parser_sizeof_expression): Remove goto sizeof_expr; Thanks and Regards, Prathamesh
Index: gcc/c/c-parser.c =================================================================== --- gcc/c/c-parser.c (revision 207916) +++ gcc/c/c-parser.c (working copy) @@ -6518,26 +6518,27 @@ c_parser_sizeof_expression (c_parser *pa expr = c_parser_postfix_expression_after_paren_type (parser, type_name, expr_loc); - goto sizeof_expr; } + else + { /* 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 + } + 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. */