m3-sys/m3cc/gcc-apple/gcc/c-parser.c
/* Parse a do statement (C90 6.6.5, C99 6.8.5).

   do-statement:
   APPLE LOCAL begin for-fsf-4_4 3274130 5295549
     do attributes statement while ( expression ) ;

   The use of attributes is a GNU extension.
   APPLE LOCAL end for-fsf-4_4 3274130 5295549
*/


The use of attributes is a GNU extension.
The use of attributes is a GNU extension .
static void
c_parser_do_statement (c_parser *parser)
{
 \
  tree block, cond, body, save_break, save_cont, new_break, new_cont, attrs;
 \
  location_t loc;
  gcc_assert (c_parser_next_token_is_keyword (parser, RID_DO));
  c_parser_consume_token (parser);
 \
  attrs = c_parser_attributes (parser);
 \
  block = c_begin_compound_stmt (flag_isoc99);
  loc = c_parser_peek_token (parser)->location;
  save_break = c_break_label;
  c_break_label = NULL_TREE;
  save_cont = c_cont_label;
  c_cont_label = NULL_TREE;
  body = c_parser_c99_block_statement (parser);
  c_parser_require_keyword (parser, RID_WHILE, "expected %<while%>");
  new_break = c_break_label;
  c_break_label = save_break;
  new_cont = c_cont_label;
  c_cont_label = save_cont;
  cond = c_parser_paren_condition (parser);
  if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>"))
    c_parser_skip_to_end_of_block_or_statement (parser);
 \
  c_finish_loop (loc, cond, NULL, body, new_break, new_cont, attrs, false);
 \
  add_stmt (c_end_compound_stmt (block, flag_isoc99));
}
static void c_parser_do_statement ( c_parser * parser ) { tree block , cond , body , save_break , save_cont , new_break , new_cont , attrs ; location_t loc ; gcc_assert ( c_parser_next_token_is_keyword ( parser , RID_DO ) ) ; c_parser_consume_token ( parser ) ; attrs = c_parser_attributes ( parser ) ; block = c_begin_compound_stmt ( flag_isoc99 ) ; loc = c_parser_peek_token ( parser ) -> location ; save_break = c_break_label ; c_break_label = NULL_TREE ; save_cont = c_cont_label ; c_cont_label = NULL_TREE ; body = c_parser_c99_block_statement ( parser ) ; c_parser_require_keyword ( parser , RID_WHILE , " " ) ; new_break = c_break_label ; c_break_label = save_break ; new_cont = c_cont_label ; c_cont_label = save_cont ; cond = c_parser_paren_condition ( parser ) ; if ( ! c_parser_require ( parser , CPP_SEMICOLON , " " ) ) c_parser_skip_to_end_of_block_or_statement ( parser ) ; c_finish_loop ( loc , cond , NULL , body , new_break , new_cont , attrs , false ) ; add_stmt ( c_end_compound_stmt ( block , flag_isoc99 ) ) ; }
Parse a do statement (C90 6.6.5, C99 6.8.5).
Parse a do statement ( C90 6 . 6 . 5 C99 6 . 8 . 5 ) .
/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ /* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ /* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ /* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ /* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ /* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */