Lines Matching refs:parser
233 c_parser_tokens_buf (c_parser *parser, unsigned n) in c_parser_tokens_buf() argument
235 return &parser->tokens_buf[n]; in c_parser_tokens_buf()
241 c_parser_error (c_parser *parser) in c_parser_error() argument
243 return parser->error; in c_parser_error()
249 c_parser_set_error (c_parser *parser, bool err) in c_parser_set_error() argument
251 parser->error = err; in c_parser_set_error()
264 c_lex_one_token (c_parser *parser, c_token *token, bool raw = false)
268 if (raw || vec_safe_length (parser->raw_tokens) == 0)
272 (parser->lex_joined_string
282 *token = (*parser->raw_tokens)[parser->raw_tokens_used];
283 ++parser->raw_tokens_used;
284 if (parser->raw_tokens_used == vec_safe_length (parser->raw_tokens))
286 vec_free (parser->raw_tokens);
287 parser->raw_tokens_used = 0;
300 bool objc_force_identifier = parser->objc_need_raw_identifier;
302 parser->objc_need_raw_identifier = false;
331 if (parser->objc_pq_context)
337 else if (parser->objc_could_be_foreach_context
365 if (parser->objc_property_attr_context)
452 parser->objc_need_raw_identifier = false;
470 c_parser_peek_token (c_parser *parser) in c_parser_peek_token() argument
472 if (parser->tokens_avail == 0) in c_parser_peek_token()
474 c_lex_one_token (parser, &parser->tokens[0]); in c_parser_peek_token()
475 parser->tokens_avail = 1; in c_parser_peek_token()
477 return &parser->tokens[0]; in c_parser_peek_token()
484 c_parser_peek_2nd_token (c_parser *parser) in c_parser_peek_2nd_token() argument
486 if (parser->tokens_avail >= 2) in c_parser_peek_2nd_token()
487 return &parser->tokens[1]; in c_parser_peek_2nd_token()
488 gcc_assert (parser->tokens_avail == 1); in c_parser_peek_2nd_token()
489 gcc_assert (parser->tokens[0].type != CPP_EOF); in c_parser_peek_2nd_token()
490 gcc_assert (parser->tokens[0].type != CPP_PRAGMA_EOL); in c_parser_peek_2nd_token()
491 c_lex_one_token (parser, &parser->tokens[1]); in c_parser_peek_2nd_token()
492 parser->tokens_avail = 2; in c_parser_peek_2nd_token()
493 return &parser->tokens[1]; in c_parser_peek_2nd_token()
500 c_parser_peek_nth_token (c_parser *parser, unsigned int n) in c_parser_peek_nth_token() argument
505 if (parser->tokens_avail >= n) in c_parser_peek_nth_token()
506 return &parser->tokens[n - 1]; in c_parser_peek_nth_token()
507 gcc_assert (parser->tokens_avail == n - 1); in c_parser_peek_nth_token()
508 c_lex_one_token (parser, &parser->tokens[n - 1]); in c_parser_peek_nth_token()
509 parser->tokens_avail = n; in c_parser_peek_nth_token()
510 return &parser->tokens[n - 1]; in c_parser_peek_nth_token()
519 c_parser_peek_nth_token_raw (c_parser *parser, unsigned int n) in c_parser_peek_nth_token_raw() argument
524 if (parser->tokens_avail >= n) in c_parser_peek_nth_token_raw()
525 return &parser->tokens[n - 1]; in c_parser_peek_nth_token_raw()
526 unsigned int raw_len = vec_safe_length (parser->raw_tokens); in c_parser_peek_nth_token_raw()
528 = parser->tokens_avail + raw_len - parser->raw_tokens_used; in c_parser_peek_nth_token_raw()
531 return &(*parser->raw_tokens)[parser->raw_tokens_used in c_parser_peek_nth_token_raw()
532 + n - 1 - parser->tokens_avail]; in c_parser_peek_nth_token_raw()
533 vec_safe_reserve (parser->raw_tokens, 1); in c_parser_peek_nth_token_raw()
534 parser->raw_tokens->quick_grow (raw_len + 1); in c_parser_peek_nth_token_raw()
535 c_lex_one_token (parser, &(*parser->raw_tokens)[raw_len], true); in c_parser_peek_nth_token_raw()
536 return &(*parser->raw_tokens)[raw_len]; in c_parser_peek_nth_token_raw()
621 c_parser_next_tokens_start_typename (c_parser *parser, enum c_lookahead_kind la) in c_parser_next_tokens_start_typename() argument
623 c_token *token = c_parser_peek_token (parser); in c_parser_next_tokens_start_typename()
633 && !parser->objc_could_be_foreach_context in c_parser_next_tokens_start_typename()
636 || c_parser_peek_2nd_token (parser)->type == CPP_NAME in c_parser_next_tokens_start_typename()
637 || c_parser_peek_2nd_token (parser)->type == CPP_MULT) in c_parser_next_tokens_start_typename()
682 c_parser_next_token_is_qualifier (c_parser *parser) in c_parser_next_token_is_qualifier() argument
684 c_token *token = c_parser_peek_token (parser); in c_parser_next_token_is_qualifier()
785 c_parser_next_token_starts_declspecs (c_parser *parser) in c_parser_next_token_starts_declspecs() argument
787 c_token *token = c_parser_peek_token (parser); in c_parser_next_token_starts_declspecs()
798 && c_parser_peek_2nd_token (parser)->type == CPP_DOT) in c_parser_next_token_starts_declspecs()
808 c_parser_next_tokens_start_declaration (c_parser *parser) in c_parser_next_tokens_start_declaration() argument
810 c_token *token = c_parser_peek_token (parser); in c_parser_next_tokens_start_declaration()
816 && c_parser_peek_2nd_token (parser)->type == CPP_DOT) in c_parser_next_tokens_start_declaration()
821 && c_parser_peek_2nd_token (parser)->type == CPP_COLON) in c_parser_next_tokens_start_declaration()
827 if (c_parser_next_tokens_start_typename (parser, cla_nonabstract_decl)) in c_parser_next_tokens_start_declaration()
836 c_parser_consume_token (c_parser *parser) in c_parser_consume_token() argument
838 gcc_assert (parser->tokens_avail >= 1); in c_parser_consume_token()
839 gcc_assert (parser->tokens[0].type != CPP_EOF); in c_parser_consume_token()
840 gcc_assert (!parser->in_pragma || parser->tokens[0].type != CPP_PRAGMA_EOL); in c_parser_consume_token()
841 gcc_assert (parser->error || parser->tokens[0].type != CPP_PRAGMA); in c_parser_consume_token()
842 parser->last_token_location = parser->tokens[0].location; in c_parser_consume_token()
843 if (parser->tokens != &parser->tokens_buf[0]) in c_parser_consume_token()
844 parser->tokens++; in c_parser_consume_token()
845 else if (parser->tokens_avail >= 2) in c_parser_consume_token()
847 parser->tokens[0] = parser->tokens[1]; in c_parser_consume_token()
848 if (parser->tokens_avail >= 3) in c_parser_consume_token()
850 parser->tokens[1] = parser->tokens[2]; in c_parser_consume_token()
851 if (parser->tokens_avail >= 4) in c_parser_consume_token()
852 parser->tokens[2] = parser->tokens[3]; in c_parser_consume_token()
855 parser->tokens_avail--; in c_parser_consume_token()
862 c_parser_consume_pragma (c_parser *parser) in c_parser_consume_pragma() argument
864 gcc_assert (!parser->in_pragma); in c_parser_consume_pragma()
865 gcc_assert (parser->tokens_avail >= 1); in c_parser_consume_pragma()
866 gcc_assert (parser->tokens[0].type == CPP_PRAGMA); in c_parser_consume_pragma()
867 if (parser->tokens != &parser->tokens_buf[0]) in c_parser_consume_pragma()
868 parser->tokens++; in c_parser_consume_pragma()
869 else if (parser->tokens_avail >= 2) in c_parser_consume_pragma()
871 parser->tokens[0] = parser->tokens[1]; in c_parser_consume_pragma()
872 if (parser->tokens_avail >= 3) in c_parser_consume_pragma()
873 parser->tokens[1] = parser->tokens[2]; in c_parser_consume_pragma()
875 parser->tokens_avail--; in c_parser_consume_pragma()
876 parser->in_pragma = true; in c_parser_consume_pragma()
901 c_parser_peek_conflict_marker (c_parser *parser, enum cpp_ttype tok1_kind, in c_parser_peek_conflict_marker() argument
904 c_token *token2 = c_parser_peek_2nd_token (parser); in c_parser_peek_conflict_marker()
907 c_token *token3 = c_parser_peek_nth_token (parser, 3); in c_parser_peek_conflict_marker()
910 c_token *token4 = c_parser_peek_nth_token (parser, 4); in c_parser_peek_conflict_marker()
915 location_t start_loc = c_parser_peek_token (parser)->location; in c_parser_peek_conflict_marker()
946 c_parser_error_richloc (c_parser *parser, const char *gmsgid, in c_parser_error_richloc() argument
949 c_token *token = c_parser_peek_token (parser); in c_parser_error_richloc()
950 if (parser->error) in c_parser_error_richloc()
952 parser->error = true; in c_parser_error_richloc()
962 if (c_parser_peek_conflict_marker (parser, token->type, &loc)) in c_parser_error_richloc()
987 c_parser_error (c_parser *parser, const char *gmsgid) in c_parser_error() argument
989 c_token *token = c_parser_peek_token (parser); in c_parser_error()
992 return c_parser_error_richloc (parser, gmsgid, &richloc); in c_parser_error()
1014 bool require_open (c_parser *parser) in require_open() argument
1016 c_token *token = c_parser_peek_token (parser); in require_open()
1020 return c_parser_require (parser, traits_t::open_token_type, in require_open()
1027 void consume_open (c_parser *parser) in consume_open() argument
1029 c_token *token = c_parser_peek_token (parser); in consume_open()
1032 c_parser_consume_token (parser); in consume_open()
1040 bool require_close (c_parser *parser) const in require_close() argument
1042 return c_parser_require (parser, traits_t::close_token_type, in require_close()
1050 void skip_until_found_close (c_parser *parser) const in skip_until_found_close() argument
1052 c_parser_skip_until_found (parser, traits_t::close_token_type, in skip_until_found_close()
1132 c_parser_require (c_parser *parser, in c_parser_require() argument
1138 if (c_parser_next_token_is (parser, type)) in c_parser_require()
1140 c_parser_consume_token (parser); in c_parser_require()
1145 location_t next_token_loc = c_parser_peek_token (parser)->location; in c_parser_require()
1151 if (!parser->error && type_is_unique) in c_parser_require()
1153 parser->last_token_location); in c_parser_require()
1163 if (c_parser_error_richloc (parser, msgid, &richloc)) in c_parser_require()
1178 c_parser_require_keyword (c_parser *parser, in c_parser_require_keyword() argument
1182 if (c_parser_next_token_is_keyword (parser, keyword)) in c_parser_require_keyword()
1184 c_parser_consume_token (parser); in c_parser_require_keyword()
1189 c_parser_error (parser, msgid); in c_parser_require_keyword()
1206 c_parser_skip_until_found (c_parser *parser, in c_parser_skip_until_found() argument
1213 if (c_parser_require (parser, type, msgid, matching_location)) in c_parser_skip_until_found()
1220 c_token *token = c_parser_peek_token (parser); in c_parser_skip_until_found()
1224 c_parser_consume_token (parser); in c_parser_skip_until_found()
1231 if (token->type == CPP_PRAGMA_EOL && parser->in_pragma) in c_parser_skip_until_found()
1245 c_parser_consume_token (parser); in c_parser_skip_until_found()
1247 parser->error = false; in c_parser_skip_until_found()
1254 c_parser_skip_to_end_of_parameter (c_parser *parser) in c_parser_skip_to_end_of_parameter() argument
1260 c_token *token = c_parser_peek_token (parser); in c_parser_skip_to_end_of_parameter()
1267 if (token->type == CPP_PRAGMA_EOL && parser->in_pragma) in c_parser_skip_to_end_of_parameter()
1281 c_parser_consume_token (parser); in c_parser_skip_to_end_of_parameter()
1283 parser->error = false; in c_parser_skip_to_end_of_parameter()
1290 c_parser_skip_to_pragma_eol (c_parser *parser, bool error_if_not_eol = true)
1292 gcc_assert (parser->in_pragma);
1293 parser->in_pragma = false;
1295 if (error_if_not_eol && c_parser_peek_token (parser)->type != CPP_PRAGMA_EOL)
1296 c_parser_error (parser, "expected end of line");
1301 c_token *token = c_parser_peek_token (parser);
1305 c_parser_consume_token (parser);
1309 parser->error = false;
1316 c_parser_skip_to_end_of_block_or_statement (c_parser *parser) in c_parser_skip_to_end_of_block_or_statement() argument
1319 bool save_error = parser->error; in c_parser_skip_to_end_of_block_or_statement()
1326 token = c_parser_peek_token (parser); in c_parser_skip_to_end_of_block_or_statement()
1334 if (parser->in_pragma) in c_parser_skip_to_end_of_block_or_statement()
1344 c_parser_consume_token (parser); in c_parser_skip_to_end_of_block_or_statement()
1354 c_parser_consume_token (parser); in c_parser_skip_to_end_of_block_or_statement()
1372 c_parser_consume_pragma (parser); in c_parser_skip_to_end_of_block_or_statement()
1373 c_parser_skip_to_pragma_eol (parser); in c_parser_skip_to_end_of_block_or_statement()
1374 parser->error = save_error; in c_parser_skip_to_end_of_block_or_statement()
1381 c_parser_consume_token (parser); in c_parser_skip_to_end_of_block_or_statement()
1385 parser->error = false; in c_parser_skip_to_end_of_block_or_statement()
1604 c_parser_translation_unit (c_parser *parser) in c_parser_translation_unit() argument
1606 if (c_parser_next_token_is (parser, CPP_EOF)) in c_parser_translation_unit()
1608 pedwarn (c_parser_peek_token (parser)->location, OPT_Wpedantic, in c_parser_translation_unit()
1618 c_parser_external_declaration (parser); in c_parser_translation_unit()
1621 while (c_parser_next_token_is_not (parser, CPP_EOF)); in c_parser_translation_unit()
1664 c_parser_external_declaration (c_parser *parser) in c_parser_external_declaration() argument
1667 switch (c_parser_peek_token (parser)->type) in c_parser_external_declaration()
1670 switch (c_parser_peek_token (parser)->keyword) in c_parser_external_declaration()
1674 c_parser_consume_token (parser); in c_parser_external_declaration()
1675 c_parser_external_declaration (parser); in c_parser_external_declaration()
1679 c_parser_asm_definition (parser); in c_parser_external_declaration()
1684 c_parser_objc_class_definition (parser, NULL_TREE); in c_parser_external_declaration()
1688 c_parser_objc_class_declaration (parser); in c_parser_external_declaration()
1692 c_parser_objc_alias_declaration (parser); in c_parser_external_declaration()
1696 c_parser_objc_protocol_definition (parser, NULL_TREE); in c_parser_external_declaration()
1700 c_parser_objc_at_property_declaration (parser); in c_parser_external_declaration()
1704 c_parser_objc_at_synthesize_declaration (parser); in c_parser_external_declaration()
1708 c_parser_objc_at_dynamic_declaration (parser); in c_parser_external_declaration()
1712 c_parser_consume_token (parser); in c_parser_external_declaration()
1720 pedwarn (c_parser_peek_token (parser)->location, OPT_Wpedantic, in c_parser_external_declaration()
1722 c_parser_consume_token (parser); in c_parser_external_declaration()
1726 c_parser_pragma (parser, pragma_external, NULL); in c_parser_external_declaration()
1733 c_parser_objc_method_definition (parser); in c_parser_external_declaration()
1745 c_parser_declaration_or_fndef (parser, true, true, true, false, true, in c_parser_external_declaration()
1858 c_parser_declaration_or_fndef (c_parser *parser, bool fndef_ok, in c_parser_declaration_or_fndef() argument
1871 location_t here = c_parser_peek_token (parser)->location; in c_parser_declaration_or_fndef()
1873 add_debug_begin_stmt (c_parser_peek_token (parser)->location); in c_parser_declaration_or_fndef()
1876 && c_parser_next_token_is_keyword (parser, RID_STATIC_ASSERT)) in c_parser_declaration_or_fndef()
1878 c_parser_static_assert_declaration (parser); in c_parser_declaration_or_fndef()
1891 if (c_parser_peek_token (parser)->type == CPP_NAME in c_parser_declaration_or_fndef()
1892 && c_parser_peek_token (parser)->id_kind == C_ID_ID in c_parser_declaration_or_fndef()
1893 && (c_parser_peek_2nd_token (parser)->type == CPP_NAME in c_parser_declaration_or_fndef()
1894 || c_parser_peek_2nd_token (parser)->type == CPP_MULT) in c_parser_declaration_or_fndef()
1895 && (!nested || !lookup_name (c_parser_peek_token (parser)->value))) in c_parser_declaration_or_fndef()
1897 tree name = c_parser_peek_token (parser)->value; in c_parser_declaration_or_fndef()
1948 c_parser_peek_token (parser)->type = CPP_KEYWORD; in c_parser_declaration_or_fndef()
1949 c_parser_peek_token (parser)->keyword = RID_VOID; in c_parser_declaration_or_fndef()
1950 c_parser_peek_token (parser)->value = error_mark_node; in c_parser_declaration_or_fndef()
1957 if (c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_declaration_or_fndef()
1960 c_parser_declspecs (parser, specs, true, true, start_attr_ok, in c_parser_declaration_or_fndef()
1962 if (parser->error) in c_parser_declaration_or_fndef()
1964 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
1969 c_parser_error (parser, "expected declaration specifiers"); in c_parser_declaration_or_fndef()
1970 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
1976 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_declaration_or_fndef()
2003 c_parser_consume_token (parser); in c_parser_declaration_or_fndef()
2013 && c_parser_next_token_starts_declspecs (parser) in c_parser_declaration_or_fndef()
2014 && !c_parser_next_token_is (parser, CPP_NAME)) in c_parser_declaration_or_fndef()
2016 c_parser_error (parser, "expected %<;%>, identifier or %<(%>"); in c_parser_declaration_or_fndef()
2017 parser->error = false; in c_parser_declaration_or_fndef()
2024 switch (c_parser_peek_token (parser)->type) in c_parser_declaration_or_fndef()
2028 if (c_parser_objc_diagnose_bad_element_prefix (parser, specs)) in c_parser_declaration_or_fndef()
2032 warning_at (c_parser_peek_token (parser)->location, in c_parser_declaration_or_fndef()
2038 c_parser_objc_method_definition (parser); in c_parser_declaration_or_fndef()
2040 c_parser_objc_methodproto (parser); in c_parser_declaration_or_fndef()
2051 switch (c_parser_peek_token (parser)->keyword) in c_parser_declaration_or_fndef()
2055 if (c_parser_objc_diagnose_bad_element_prefix (parser, specs)) in c_parser_declaration_or_fndef()
2057 c_parser_objc_class_definition (parser, specs->attrs); in c_parser_declaration_or_fndef()
2063 if (c_parser_objc_diagnose_bad_element_prefix (parser, specs)) in c_parser_declaration_or_fndef()
2067 warning_at (c_parser_peek_token (parser)->location, in c_parser_declaration_or_fndef()
2072 c_parser_objc_class_definition (parser, NULL_TREE); in c_parser_declaration_or_fndef()
2078 if (c_parser_objc_diagnose_bad_element_prefix (parser, specs)) in c_parser_declaration_or_fndef()
2080 c_parser_objc_protocol_definition (parser, specs->attrs); in c_parser_declaration_or_fndef()
2090 c_parser_error (parser, "unexpected attribute"); in c_parser_declaration_or_fndef()
2116 declarator = c_parser_declarator (parser, in c_parser_declaration_or_fndef()
2122 c_finish_omp_declare_simd (parser, NULL_TREE, NULL_TREE, in c_parser_declaration_or_fndef()
2126 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
2134 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
2137 if (c_parser_next_token_is (parser, CPP_EQ) in c_parser_declaration_or_fndef()
2138 || c_parser_next_token_is (parser, CPP_COMMA) in c_parser_declaration_or_fndef()
2139 || c_parser_next_token_is (parser, CPP_SEMICOLON) in c_parser_declaration_or_fndef()
2140 || c_parser_next_token_is_keyword (parser, RID_ASM) in c_parser_declaration_or_fndef()
2141 || c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE) in c_parser_declaration_or_fndef()
2142 || c_parser_next_token_is_keyword (parser, RID_IN)) in c_parser_declaration_or_fndef()
2154 if (c_parser_next_token_is_keyword (parser, RID_ASM)) in c_parser_declaration_or_fndef()
2155 asm_name = c_parser_simple_asm_expr (parser); in c_parser_declaration_or_fndef()
2156 if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_declaration_or_fndef()
2158 postfix_attrs = c_parser_gnu_attributes (parser); in c_parser_declaration_or_fndef()
2159 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_declaration_or_fndef()
2166 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
2170 if (c_parser_next_token_is (parser, CPP_EQ)) in c_parser_declaration_or_fndef()
2175 c_parser_consume_token (parser); in c_parser_declaration_or_fndef()
2178 init_loc = c_parser_peek_token (parser)->location; in c_parser_declaration_or_fndef()
2186 init = c_parser_expr_no_commas (parser, NULL); in c_parser_declaration_or_fndef()
2226 c_finish_omp_declare_simd (parser, d, NULL_TREE, in c_parser_declaration_or_fndef()
2238 c_finish_omp_declare_simd (parser, d, NULL_TREE, in c_parser_declaration_or_fndef()
2240 init_loc = c_parser_peek_token (parser)->location; in c_parser_declaration_or_fndef()
2248 init = c_parser_initializer (parser); in c_parser_declaration_or_fndef()
2268 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
2328 c_finish_omp_declare_simd (parser, d, parms, in c_parser_declaration_or_fndef()
2339 if (c_parser_next_token_is_keyword (parser, RID_IN)) in c_parser_declaration_or_fndef()
2347 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_declaration_or_fndef()
2354 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
2357 c_parser_consume_token (parser); in c_parser_declaration_or_fndef()
2358 if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_declaration_or_fndef()
2359 all_prefix_attrs = chainon (c_parser_gnu_attributes (parser), in c_parser_declaration_or_fndef()
2365 else if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_declaration_or_fndef()
2367 c_parser_consume_token (parser); in c_parser_declaration_or_fndef()
2370 else if (c_parser_next_token_is_keyword (parser, RID_IN)) in c_parser_declaration_or_fndef()
2381 c_parser_error (parser, "expected %<,%> or %<;%>"); in c_parser_declaration_or_fndef()
2382 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
2390 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
2395 c_parser_error (parser, "expected %<=%>, %<,%>, %<;%>, " in c_parser_declaration_or_fndef()
2397 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_declaration_or_fndef()
2416 gcc_assert (!c_parser_next_token_is (parser, CPP_SEMICOLON)); in c_parser_declaration_or_fndef()
2417 if (c_parser_next_token_starts_declspecs (parser)) in c_parser_declaration_or_fndef()
2428 c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_declaration_or_fndef()
2429 parser->error = false; in c_parser_declaration_or_fndef()
2436 c_parser_error (parser, "expected %<=%>, %<,%>, %<;%>, %<asm%> " in c_parser_declaration_or_fndef()
2462 while (c_parser_next_token_is_not (parser, CPP_EOF) in c_parser_declaration_or_fndef()
2463 && c_parser_next_token_is_not (parser, CPP_OPEN_BRACE)) in c_parser_declaration_or_fndef()
2464 c_parser_declaration_or_fndef (parser, false, false, false, in c_parser_declaration_or_fndef()
2468 c_finish_omp_declare_simd (parser, current_function_decl, NULL_TREE, in c_parser_declaration_or_fndef()
2472 location_t startloc = c_parser_peek_token (parser)->location; in c_parser_declaration_or_fndef()
2481 endloc = c_parser_parse_rtl_body (parser, specs->gimple_or_rtl_pass); in c_parser_declaration_or_fndef()
2499 c_parser_parse_gimple_body (parser, specs->gimple_or_rtl_pass, in c_parser_declaration_or_fndef()
2505 fnbody = c_parser_compound_statement (parser, &endloc); in c_parser_declaration_or_fndef()
2542 c_parser_asm_definition (c_parser *parser) in c_parser_asm_definition() argument
2544 tree asm_str = c_parser_simple_asm_expr (parser); in c_parser_asm_definition()
2547 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_asm_definition()
2557 c_parser_static_assert_declaration (c_parser *parser) in c_parser_static_assert_declaration() argument
2559 c_parser_static_assert_declaration_no_semi (parser); in c_parser_static_assert_declaration()
2560 if (parser->error in c_parser_static_assert_declaration()
2561 || !c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) in c_parser_static_assert_declaration()
2562 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_static_assert_declaration()
2577 c_parser_static_assert_declaration_no_semi (c_parser *parser) in c_parser_static_assert_declaration_no_semi() argument
2583 gcc_assert (c_parser_next_token_is_keyword (parser, RID_STATIC_ASSERT)); in c_parser_static_assert_declaration_no_semi()
2584 assert_loc = c_parser_peek_token (parser)->location; in c_parser_static_assert_declaration_no_semi()
2591 c_parser_consume_token (parser); in c_parser_static_assert_declaration_no_semi()
2593 if (!parens.require_open (parser)) in c_parser_static_assert_declaration_no_semi()
2595 location_t value_tok_loc = c_parser_peek_token (parser)->location; in c_parser_static_assert_declaration_no_semi()
2596 value = c_parser_expr_no_commas (parser, NULL).value; in c_parser_static_assert_declaration_no_semi()
2598 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_static_assert_declaration_no_semi()
2600 c_parser_consume_token (parser); in c_parser_static_assert_declaration_no_semi()
2601 switch (c_parser_peek_token (parser)->type) in c_parser_static_assert_declaration_no_semi()
2608 string = c_parser_string_literal (parser, false, true).value; in c_parser_static_assert_declaration_no_semi()
2611 c_parser_error (parser, "expected string literal"); in c_parser_static_assert_declaration_no_semi()
2622 parens.require_close (parser); in c_parser_static_assert_declaration_no_semi()
2770 c_parser_declspecs (c_parser *parser, struct c_declspecs *specs, in c_parser_declspecs() argument
2783 && c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_declspecs()
2786 location_t loc = c_parser_peek_token (parser)->location; in c_parser_declspecs()
2787 tree attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_declspecs()
2792 while (c_parser_next_token_is (parser, CPP_NAME) in c_parser_declspecs()
2793 || c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_declspecs()
2794 || (c_dialect_objc () && c_parser_next_token_is (parser, CPP_LESS))) in c_parser_declspecs()
2799 location_t loc = c_parser_peek_token (parser)->location; in c_parser_declspecs()
2806 && c_parser_next_tokens_start_typename (parser, la) in c_parser_declspecs()
2807 && !c_parser_next_token_is_qualifier (parser) in c_parser_declspecs()
2808 && !c_parser_next_token_is_keyword (parser, RID_ALIGNAS)) in c_parser_declspecs()
2811 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_declspecs()
2813 c_token *name_token = c_parser_peek_token (parser); in c_parser_declspecs()
2822 c_parser_consume_token (parser); in c_parser_declspecs()
2827 gcc_assert (!c_parser_next_token_is_qualifier (parser)); in c_parser_declspecs()
2833 if (seen_type || !c_parser_next_tokens_start_typename (parser, la)) in c_parser_declspecs()
2838 c_parser_consume_token (parser); in c_parser_declspecs()
2849 || c_parser_next_token_is_not (parser, CPP_LESS))) in c_parser_declspecs()
2861 if (c_parser_next_token_is (parser, CPP_LESS)) in c_parser_declspecs()
2862 proto = c_parser_objc_protocol_refs (parser); in c_parser_declspecs()
2870 if (c_parser_next_token_is (parser, CPP_LESS)) in c_parser_declspecs()
2878 proto = c_parser_objc_protocol_refs (parser); in c_parser_declspecs()
2886 gcc_assert (c_parser_next_token_is (parser, CPP_KEYWORD)); in c_parser_declspecs()
2887 switch (c_parser_peek_token (parser)->keyword) in c_parser_declspecs()
2904 c_parser_peek_token (parser)->value); in c_parser_declspecs()
2905 c_parser_consume_token (parser); in c_parser_declspecs()
2938 parser->objc_need_raw_identifier = true; in c_parser_declspecs()
2940 t.spec = c_parser_peek_token (parser)->value; in c_parser_declspecs()
2944 c_parser_consume_token (parser); in c_parser_declspecs()
2951 t = c_parser_enum_specifier (parser); in c_parser_declspecs()
2961 t = c_parser_struct_or_union_specifier (parser); in c_parser_declspecs()
2973 t = c_parser_typeof_specifier (parser); in c_parser_declspecs()
2994 value = c_parser_peek_token (parser)->value; in c_parser_declspecs()
2995 c_parser_consume_token (parser); in c_parser_declspecs()
2996 if (typespec_ok && c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_declspecs()
3000 c_parser_consume_token (parser); in c_parser_declspecs()
3001 struct c_type_name *type = c_parser_type_name (parser); in c_parser_declspecs()
3009 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_declspecs()
3031 declspecs_add_qual (loc, specs, c_parser_peek_token (parser)->value); in c_parser_declspecs()
3032 c_parser_consume_token (parser); in c_parser_declspecs()
3037 attrs = c_parser_gnu_attributes (parser); in c_parser_declspecs()
3043 align = c_parser_alignas_specifier (parser); in c_parser_declspecs()
3049 c_parser_consume_token (parser); in c_parser_declspecs()
3052 c_parser_gimple_or_rtl_pass_list (parser, specs); in c_parser_declspecs()
3055 c_parser_consume_token (parser); in c_parser_declspecs()
3058 c_parser_gimple_or_rtl_pass_list (parser, specs); in c_parser_declspecs()
3066 && c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_declspecs()
3067 specs->postfix_attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_declspecs()
3104 c_parser_enum_specifier (c_parser *parser) in c_parser_enum_specifier() argument
3113 gcc_assert (c_parser_next_token_is_keyword (parser, RID_ENUM)); in c_parser_enum_specifier()
3114 c_parser_consume_token (parser); in c_parser_enum_specifier()
3115 have_std_attrs = c_parser_nth_token_starts_std_attributes (parser, 1); in c_parser_enum_specifier()
3117 std_attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_enum_specifier()
3118 attrs = c_parser_gnu_attributes (parser); in c_parser_enum_specifier()
3119 enum_loc = c_parser_peek_token (parser)->location; in c_parser_enum_specifier()
3121 c_parser_set_source_position_from_token (c_parser_peek_token (parser)); in c_parser_enum_specifier()
3122 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_enum_specifier()
3124 ident = c_parser_peek_token (parser)->value; in c_parser_enum_specifier()
3125 ident_loc = c_parser_peek_token (parser)->location; in c_parser_enum_specifier()
3127 c_parser_consume_token (parser); in c_parser_enum_specifier()
3129 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_enum_specifier()
3141 c_parser_consume_token (parser); in c_parser_enum_specifier()
3151 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_enum_specifier()
3154 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE) in c_parser_enum_specifier()
3155 && !parser->error) in c_parser_enum_specifier()
3157 error_at (c_parser_peek_token (parser)->location, in c_parser_enum_specifier()
3159 parser->error = true; in c_parser_enum_specifier()
3162 c_parser_error (parser, "expected identifier"); in c_parser_enum_specifier()
3163 c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, NULL); in c_parser_enum_specifier()
3167 token = c_parser_peek_token (parser); in c_parser_enum_specifier()
3172 c_parser_consume_token (parser); in c_parser_enum_specifier()
3175 if (c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_enum_specifier()
3176 std_attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_enum_specifier()
3178 c_parser_gnu_attributes (parser)); in c_parser_enum_specifier()
3179 if (c_parser_next_token_is (parser, CPP_EQ)) in c_parser_enum_specifier()
3181 c_parser_consume_token (parser); in c_parser_enum_specifier()
3182 value_loc = c_parser_peek_token (parser)->location; in c_parser_enum_specifier()
3183 enum_value = c_parser_expr_no_commas (parser, NULL).value; in c_parser_enum_specifier()
3194 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_enum_specifier()
3196 comma_loc = c_parser_peek_token (parser)->location; in c_parser_enum_specifier()
3198 c_parser_consume_token (parser); in c_parser_enum_specifier()
3200 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_enum_specifier()
3205 c_parser_consume_token (parser); in c_parser_enum_specifier()
3210 c_parser_error (parser, "expected %<,%> or %<}%>"); in c_parser_enum_specifier()
3211 c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, NULL); in c_parser_enum_specifier()
3216 postfix_attrs = c_parser_gnu_attributes (parser); in c_parser_enum_specifier()
3228 c_parser_error (parser, "expected %<{%>"); in c_parser_enum_specifier()
3239 if (have_std_attrs && c_parser_next_token_is_not (parser, CPP_SEMICOLON)) in c_parser_enum_specifier()
3240 c_parser_error (parser, "expected %<;%>"); in c_parser_enum_specifier()
3295 c_parser_struct_or_union_specifier (c_parser *parser) in c_parser_struct_or_union_specifier() argument
3305 switch (c_parser_peek_token (parser)->keyword) in c_parser_struct_or_union_specifier()
3316 struct_loc = c_parser_peek_token (parser)->location; in c_parser_struct_or_union_specifier()
3317 c_parser_consume_token (parser); in c_parser_struct_or_union_specifier()
3318 have_std_attrs = c_parser_nth_token_starts_std_attributes (parser, 1); in c_parser_struct_or_union_specifier()
3320 std_attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_struct_or_union_specifier()
3321 attrs = c_parser_gnu_attributes (parser); in c_parser_struct_or_union_specifier()
3324 c_parser_set_source_position_from_token (c_parser_peek_token (parser)); in c_parser_struct_or_union_specifier()
3326 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_struct_or_union_specifier()
3328 ident = c_parser_peek_token (parser)->value; in c_parser_struct_or_union_specifier()
3329 ident_loc = c_parser_peek_token (parser)->location; in c_parser_struct_or_union_specifier()
3331 c_parser_consume_token (parser); in c_parser_struct_or_union_specifier()
3333 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_struct_or_union_specifier()
3353 c_parser_consume_token (parser); in c_parser_struct_or_union_specifier()
3356 if (c_parser_next_token_is_keyword (parser, RID_AT_DEFS)) in c_parser_struct_or_union_specifier()
3360 c_parser_consume_token (parser); in c_parser_struct_or_union_specifier()
3362 if (!parens.require_open (parser)) in c_parser_struct_or_union_specifier()
3364 if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_struct_or_union_specifier()
3365 && c_parser_peek_token (parser)->id_kind == C_ID_CLASSNAME) in c_parser_struct_or_union_specifier()
3367 name = c_parser_peek_token (parser)->value; in c_parser_struct_or_union_specifier()
3368 c_parser_consume_token (parser); in c_parser_struct_or_union_specifier()
3372 c_parser_error (parser, "expected class name"); in c_parser_struct_or_union_specifier()
3373 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_struct_or_union_specifier()
3376 parens.skip_until_found_close (parser); in c_parser_struct_or_union_specifier()
3387 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_struct_or_union_specifier()
3390 = c_parser_peek_token (parser)->location; in c_parser_struct_or_union_specifier()
3395 c_parser_consume_token (parser); in c_parser_struct_or_union_specifier()
3399 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_struct_or_union_specifier()
3401 c_parser_consume_token (parser); in c_parser_struct_or_union_specifier()
3405 if (c_parser_next_token_is (parser, CPP_PRAGMA)) in c_parser_struct_or_union_specifier()
3407 c_parser_pragma (parser, pragma_struct, NULL); in c_parser_struct_or_union_specifier()
3412 decls = c_parser_struct_declaration (parser); in c_parser_struct_or_union_specifier()
3417 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_struct_or_union_specifier()
3418 c_parser_consume_token (parser); in c_parser_struct_or_union_specifier()
3421 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_struct_or_union_specifier()
3422 pedwarn (c_parser_peek_token (parser)->location, 0, in c_parser_struct_or_union_specifier()
3424 else if (parser->error in c_parser_struct_or_union_specifier()
3425 || !c_parser_next_token_starts_declspecs (parser)) in c_parser_struct_or_union_specifier()
3427 c_parser_error (parser, "expected %<;%>"); in c_parser_struct_or_union_specifier()
3428 c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, NULL); in c_parser_struct_or_union_specifier()
3437 postfix_attrs = c_parser_gnu_attributes (parser); in c_parser_struct_or_union_specifier()
3450 c_parser_error (parser, "expected %<{%>"); in c_parser_struct_or_union_specifier()
3459 if (have_std_attrs && c_parser_next_token_is_not (parser, CPP_SEMICOLON)) in c_parser_struct_or_union_specifier()
3460 c_parser_error (parser, "expected %<;%>"); in c_parser_struct_or_union_specifier()
3502 c_parser_struct_declaration (c_parser *parser) in c_parser_struct_declaration() argument
3509 if (c_parser_next_token_is_keyword (parser, RID_EXTENSION)) in c_parser_struct_declaration()
3514 c_parser_consume_token (parser); in c_parser_struct_declaration()
3515 decl = c_parser_struct_declaration (parser); in c_parser_struct_declaration()
3519 if (c_parser_next_token_is_keyword (parser, RID_STATIC_ASSERT)) in c_parser_struct_declaration()
3521 c_parser_static_assert_declaration_no_semi (parser); in c_parser_struct_declaration()
3525 decl_loc = c_parser_peek_token (parser)->location; in c_parser_struct_declaration()
3531 c_parser_declspecs (parser, specs, false, true, true, in c_parser_struct_declaration()
3533 if (parser->error) in c_parser_struct_declaration()
3537 c_parser_error (parser, "expected specifier-qualifier-list"); in c_parser_struct_declaration()
3541 if (c_parser_next_token_is (parser, CPP_SEMICOLON) in c_parser_struct_declaration()
3542 || c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_struct_declaration()
3559 ret = grokfield (c_parser_peek_token (parser)->location, in c_parser_struct_declaration()
3572 && c_parser_next_token_starts_declspecs (parser) in c_parser_struct_declaration()
3573 && !c_parser_next_token_is (parser, CPP_NAME)) in c_parser_struct_declaration()
3575 c_parser_error (parser, "expected %<;%>, identifier or %<(%>"); in c_parser_struct_declaration()
3576 parser->error = false; in c_parser_struct_declaration()
3590 if (c_parser_next_token_is (parser, CPP_COLON)) in c_parser_struct_declaration()
3593 declarator = c_parser_declarator (parser, in c_parser_struct_declaration()
3598 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_struct_declaration()
3601 if (c_parser_next_token_is (parser, CPP_COLON) in c_parser_struct_declaration()
3602 || c_parser_next_token_is (parser, CPP_COMMA) in c_parser_struct_declaration()
3603 || c_parser_next_token_is (parser, CPP_SEMICOLON) in c_parser_struct_declaration()
3604 || c_parser_next_token_is (parser, CPP_CLOSE_BRACE) in c_parser_struct_declaration()
3605 || c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_struct_declaration()
3610 if (c_parser_next_token_is (parser, CPP_COLON)) in c_parser_struct_declaration()
3612 c_parser_consume_token (parser); in c_parser_struct_declaration()
3613 width = c_parser_expr_no_commas (parser, NULL).value; in c_parser_struct_declaration()
3615 if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_struct_declaration()
3616 postfix_attrs = c_parser_gnu_attributes (parser); in c_parser_struct_declaration()
3617 d = grokfield (c_parser_peek_token (parser)->location, in c_parser_struct_declaration()
3623 if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_struct_declaration()
3624 all_prefix_attrs = chainon (c_parser_gnu_attributes (parser), in c_parser_struct_declaration()
3628 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_struct_declaration()
3629 c_parser_consume_token (parser); in c_parser_struct_declaration()
3630 else if (c_parser_next_token_is (parser, CPP_SEMICOLON) in c_parser_struct_declaration()
3631 || c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_struct_declaration()
3638 c_parser_error (parser, "expected %<,%>, %<;%> or %<}%>"); in c_parser_struct_declaration()
3644 c_parser_error (parser, in c_parser_struct_declaration()
3661 c_parser_typeof_specifier (c_parser *parser) in c_parser_typeof_specifier() argument
3668 gcc_assert (c_parser_next_token_is_keyword (parser, RID_TYPEOF)); in c_parser_typeof_specifier()
3669 c_parser_consume_token (parser); in c_parser_typeof_specifier()
3673 if (!parens.require_open (parser)) in c_parser_typeof_specifier()
3679 if (c_parser_next_tokens_start_typename (parser, cla_prefer_id)) in c_parser_typeof_specifier()
3681 struct c_type_name *type = c_parser_type_name (parser); in c_parser_typeof_specifier()
3693 location_t here = c_parser_peek_token (parser)->location; in c_parser_typeof_specifier()
3694 struct c_expr expr = c_parser_expression (parser); in c_parser_typeof_specifier()
3714 parens.skip_until_found_close (parser); in c_parser_typeof_specifier()
3728 c_parser_alignas_specifier (c_parser * parser) in c_parser_alignas_specifier() argument
3731 location_t loc = c_parser_peek_token (parser)->location; in c_parser_alignas_specifier()
3732 gcc_assert (c_parser_next_token_is_keyword (parser, RID_ALIGNAS)); in c_parser_alignas_specifier()
3733 c_parser_consume_token (parser); in c_parser_alignas_specifier()
3741 if (!parens.require_open (parser)) in c_parser_alignas_specifier()
3743 if (c_parser_next_tokens_start_typename (parser, cla_prefer_id)) in c_parser_alignas_specifier()
3745 struct c_type_name *type = c_parser_type_name (parser); in c_parser_alignas_specifier()
3751 ret = c_parser_expr_no_commas (parser, NULL).value; in c_parser_alignas_specifier()
3752 parens.skip_until_found_close (parser); in c_parser_alignas_specifier()
3840 c_parser_declarator (c_parser *parser, bool type_seen_p, c_dtr_syn kind, in c_parser_declarator() argument
3844 if (c_parser_next_token_is (parser, CPP_MULT)) in c_parser_declarator()
3848 c_parser_consume_token (parser); in c_parser_declarator()
3849 c_parser_declspecs (parser, quals_attrs, false, false, true, in c_parser_declarator()
3851 inner = c_parser_declarator (parser, type_seen_p, kind, seen_id); in c_parser_declarator()
3859 return c_parser_direct_declarator (parser, type_seen_p, kind, seen_id); in c_parser_declarator()
3866 c_parser_direct_declarator (c_parser *parser, bool type_seen_p, c_dtr_syn kind, in c_parser_direct_declarator() argument
3905 && c_parser_next_token_is (parser, CPP_NAME) in c_parser_direct_declarator()
3907 && (c_parser_peek_token (parser)->id_kind == C_ID_TYPENAME in c_parser_direct_declarator()
3908 || c_parser_peek_token (parser)->id_kind == C_ID_CLASSNAME)) in c_parser_direct_declarator()
3909 || c_parser_peek_token (parser)->id_kind == C_ID_ID)) in c_parser_direct_declarator()
3912 = build_id_declarator (c_parser_peek_token (parser)->value); in c_parser_direct_declarator()
3914 inner->id_loc = c_parser_peek_token (parser)->location; in c_parser_direct_declarator()
3915 c_parser_consume_token (parser); in c_parser_direct_declarator()
3916 if (c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_direct_declarator()
3917 inner->u.id.attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_direct_declarator()
3918 return c_parser_direct_declarator_inner (parser, *seen_id, inner); in c_parser_direct_declarator()
3922 && c_parser_next_token_is (parser, CPP_OPEN_SQUARE) in c_parser_direct_declarator()
3923 && !c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_direct_declarator()
3926 inner->id_loc = c_parser_peek_token (parser)->location; in c_parser_direct_declarator()
3927 return c_parser_direct_declarator_inner (parser, *seen_id, inner); in c_parser_direct_declarator()
3933 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_direct_declarator()
3937 c_parser_consume_token (parser); in c_parser_direct_declarator()
3938 bool have_gnu_attrs = c_parser_next_token_is_keyword (parser, in c_parser_direct_declarator()
3940 attrs = c_parser_gnu_attributes (parser); in c_parser_direct_declarator()
3942 && (c_parser_next_token_starts_declspecs (parser) in c_parser_direct_declarator()
3944 && c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_direct_declarator()
3945 || c_parser_next_token_is (parser, CPP_CLOSE_PAREN))) in c_parser_direct_declarator()
3948 = c_parser_parms_declarator (parser, kind == C_DTR_NORMAL, in c_parser_direct_declarator()
3958 && c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_direct_declarator()
3961 = c_parser_std_attribute_specifier_sequence (parser); in c_parser_direct_declarator()
3966 return c_parser_direct_declarator_inner (parser, *seen_id, in c_parser_direct_declarator()
3971 inner = c_parser_declarator (parser, type_seen_p, kind, seen_id); in c_parser_direct_declarator()
3974 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_direct_declarator()
3976 c_parser_consume_token (parser); in c_parser_direct_declarator()
3980 return c_parser_direct_declarator_inner (parser, *seen_id, inner); in c_parser_direct_declarator()
3984 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_direct_declarator()
3993 c_parser_error (parser, "expected identifier or %<(%>"); in c_parser_direct_declarator()
4007 c_parser_direct_declarator_inner (c_parser *parser, bool id_present, in c_parser_direct_declarator_inner() argument
4011 if (c_parser_next_token_is (parser, CPP_OPEN_SQUARE) in c_parser_direct_declarator_inner()
4012 && !c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_direct_declarator_inner()
4014 location_t brace_loc = c_parser_peek_token (parser)->location; in c_parser_direct_declarator_inner()
4023 c_parser_consume_token (parser); in c_parser_direct_declarator_inner()
4024 c_parser_declspecs (parser, quals_attrs, false, false, true, in c_parser_direct_declarator_inner()
4026 static_seen = c_parser_next_token_is_keyword (parser, RID_STATIC); in c_parser_direct_declarator_inner()
4028 c_parser_consume_token (parser); in c_parser_direct_declarator_inner()
4030 c_parser_declspecs (parser, quals_attrs, false, false, true, in c_parser_direct_declarator_inner()
4040 dimen = c_parser_expr_no_commas (parser, NULL); in c_parser_direct_declarator_inner()
4044 if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) in c_parser_direct_declarator_inner()
4049 else if (c_parser_next_token_is (parser, CPP_MULT)) in c_parser_direct_declarator_inner()
4051 if (c_parser_peek_2nd_token (parser)->type == CPP_CLOSE_SQUARE) in c_parser_direct_declarator_inner()
4055 c_parser_consume_token (parser); in c_parser_direct_declarator_inner()
4060 dimen = c_parser_expr_no_commas (parser, NULL); in c_parser_direct_declarator_inner()
4066 dimen = c_parser_expr_no_commas (parser, NULL); in c_parser_direct_declarator_inner()
4069 if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) in c_parser_direct_declarator_inner()
4070 c_parser_consume_token (parser); in c_parser_direct_declarator_inner()
4073 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, in c_parser_direct_declarator_inner()
4083 if (c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_direct_declarator_inner()
4086 = c_parser_std_attribute_specifier_sequence (parser); in c_parser_direct_declarator_inner()
4091 return c_parser_direct_declarator_inner (parser, id_present, inner); in c_parser_direct_declarator_inner()
4093 else if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_direct_declarator_inner()
4097 c_parser_consume_token (parser); in c_parser_direct_declarator_inner()
4098 bool have_gnu_attrs = c_parser_next_token_is_keyword (parser, in c_parser_direct_declarator_inner()
4100 attrs = c_parser_gnu_attributes (parser); in c_parser_direct_declarator_inner()
4101 args = c_parser_parms_declarator (parser, id_present, attrs, in c_parser_direct_declarator_inner()
4110 && c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_direct_declarator_inner()
4113 = c_parser_std_attribute_specifier_sequence (parser); in c_parser_direct_declarator_inner()
4118 return c_parser_direct_declarator_inner (parser, id_present, inner); in c_parser_direct_declarator_inner()
4133 c_parser_parms_declarator (c_parser *parser, bool id_list_ok, tree attrs, in c_parser_parms_declarator() argument
4142 && c_parser_next_token_is (parser, CPP_NAME) in c_parser_parms_declarator()
4143 && c_parser_peek_token (parser)->id_kind == C_ID_ID in c_parser_parms_declarator()
4146 && c_parser_peek_2nd_token (parser)->type != CPP_NAME in c_parser_parms_declarator()
4147 && c_parser_peek_2nd_token (parser)->type != CPP_MULT in c_parser_parms_declarator()
4148 && c_parser_peek_2nd_token (parser)->type != CPP_OPEN_PAREN in c_parser_parms_declarator()
4149 && c_parser_peek_2nd_token (parser)->type != CPP_OPEN_SQUARE in c_parser_parms_declarator()
4150 && c_parser_peek_2nd_token (parser)->type != CPP_KEYWORD) in c_parser_parms_declarator()
4153 while (c_parser_next_token_is (parser, CPP_NAME) in c_parser_parms_declarator()
4154 && c_parser_peek_token (parser)->id_kind == C_ID_ID) in c_parser_parms_declarator()
4157 c_parser_peek_token (parser)->value); in c_parser_parms_declarator()
4159 c_parser_consume_token (parser); in c_parser_parms_declarator()
4160 if (c_parser_next_token_is_not (parser, CPP_COMMA)) in c_parser_parms_declarator()
4162 c_parser_consume_token (parser); in c_parser_parms_declarator()
4163 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_parms_declarator()
4165 c_parser_error (parser, "expected identifier"); in c_parser_parms_declarator()
4169 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_parms_declarator()
4173 c_parser_consume_token (parser); in c_parser_parms_declarator()
4179 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_parms_declarator()
4188 = c_parser_parms_list_declarator (parser, attrs, NULL, have_gnu_attrs); in c_parser_parms_declarator()
4203 c_parser_parms_list_declarator (c_parser *parser, tree attrs, tree expr, in c_parser_parms_list_declarator() argument
4214 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_parms_list_declarator()
4217 c_parser_consume_token (parser); in c_parser_parms_list_declarator()
4220 if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) in c_parser_parms_list_declarator()
4233 error_at (c_parser_peek_token (parser)->location, in c_parser_parms_list_declarator()
4236 c_parser_consume_token (parser); in c_parser_parms_list_declarator()
4237 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_parms_list_declarator()
4239 c_parser_consume_token (parser); in c_parser_parms_list_declarator()
4244 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_parms_list_declarator()
4255 struct c_parm *parm = c_parser_parameter_declaration (parser, attrs, in c_parser_parms_list_declarator()
4263 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_parms_list_declarator()
4266 c_parser_consume_token (parser); in c_parser_parms_list_declarator()
4269 = c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE); in c_parser_parms_list_declarator()
4270 new_attrs = c_parser_gnu_attributes (parser); in c_parser_parms_list_declarator()
4271 return c_parser_parms_list_declarator (parser, new_attrs, expr, in c_parser_parms_list_declarator()
4274 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_parms_list_declarator()
4276 c_parser_consume_token (parser); in c_parser_parms_list_declarator()
4282 if (!c_parser_require (parser, CPP_COMMA, in c_parser_parms_list_declarator()
4286 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_parms_list_declarator()
4289 if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) in c_parser_parms_list_declarator()
4291 c_parser_consume_token (parser); in c_parser_parms_list_declarator()
4292 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_parms_list_declarator()
4294 c_parser_consume_token (parser); in c_parser_parms_list_declarator()
4302 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_parms_list_declarator()
4316 c_parser_parameter_declaration (c_parser *parser, tree attrs, in c_parser_parameter_declaration() argument
4326 while (c_parser_next_token_is (parser, CPP_PRAGMA)) in c_parser_parameter_declaration()
4327 c_parser_pragma (parser, pragma_param, NULL); in c_parser_parameter_declaration()
4329 if (!c_parser_next_token_starts_declspecs (parser) in c_parser_parameter_declaration()
4330 && !c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_parameter_declaration()
4332 c_token *token = c_parser_peek_token (parser); in c_parser_parameter_declaration()
4333 if (parser->error) in c_parser_parameter_declaration()
4336 if (c_parser_next_tokens_start_typename (parser, cla_prefer_type)) in c_parser_parameter_declaration()
4352 parser->error = true; in c_parser_parameter_declaration()
4357 c_parser_error (parser, in c_parser_parameter_declaration()
4359 c_parser_skip_to_end_of_parameter (parser); in c_parser_parameter_declaration()
4363 location_t start_loc = c_parser_peek_token (parser)->location; in c_parser_parameter_declaration()
4371 c_parser_declspecs (parser, specs, true, true, true, true, false, in c_parser_parameter_declaration()
4377 declarator = c_parser_declarator (parser, in c_parser_parameter_declaration()
4382 c_parser_skip_until_found (parser, CPP_COMMA, NULL); in c_parser_parameter_declaration()
4385 if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_parameter_declaration()
4386 postfix_attrs = c_parser_gnu_attributes (parser); in c_parser_parameter_declaration()
4401 location_t end_loc = parser->last_token_location; in c_parser_parameter_declaration()
4425 c_parser_asm_string_literal (c_parser *parser) in c_parser_asm_string_literal() argument
4430 str = c_parser_string_literal (parser, false, false).value; in c_parser_asm_string_literal()
4444 c_parser_simple_asm_expr (c_parser *parser) in c_parser_simple_asm_expr() argument
4447 gcc_assert (c_parser_next_token_is_keyword (parser, RID_ASM)); in c_parser_simple_asm_expr()
4448 c_parser_consume_token (parser); in c_parser_simple_asm_expr()
4450 if (!parens.require_open (parser)) in c_parser_simple_asm_expr()
4452 str = c_parser_asm_string_literal (parser); in c_parser_simple_asm_expr()
4453 if (!parens.require_close (parser)) in c_parser_simple_asm_expr()
4455 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_simple_asm_expr()
4462 c_parser_gnu_attribute_any_word (c_parser *parser) in c_parser_gnu_attribute_any_word() argument
4466 if (c_parser_next_token_is (parser, CPP_KEYWORD)) in c_parser_gnu_attribute_any_word()
4470 switch (c_parser_peek_token (parser)->keyword) in c_parser_gnu_attribute_any_word()
4519 attr_name = ridpointers[(int) c_parser_peek_token (parser)->keyword]; in c_parser_gnu_attribute_any_word()
4521 else if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_gnu_attribute_any_word()
4522 attr_name = c_parser_peek_token (parser)->value; in c_parser_gnu_attribute_any_word()
4539 c_parser_attribute_arguments (c_parser *parser, bool takes_identifier, in c_parser_attribute_arguments() argument
4549 if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_attribute_arguments()
4550 && (c_parser_peek_token (parser)->id_kind == C_ID_ID in c_parser_attribute_arguments()
4552 && c_parser_peek_token (parser)->id_kind in c_parser_attribute_arguments()
4554 && ((c_parser_peek_2nd_token (parser)->type == CPP_COMMA) in c_parser_attribute_arguments()
4555 || (c_parser_peek_2nd_token (parser)->type in c_parser_attribute_arguments()
4559 && c_parser_peek_token (parser)->id_kind in c_parser_attribute_arguments()
4562 tree arg1 = c_parser_peek_token (parser)->value; in c_parser_attribute_arguments()
4563 c_parser_consume_token (parser); in c_parser_attribute_arguments()
4564 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_attribute_arguments()
4569 c_parser_consume_token (parser); in c_parser_attribute_arguments()
4570 expr_list = c_parser_expr_list (parser, false, true, in c_parser_attribute_arguments()
4579 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_attribute_arguments()
4582 error_at (c_parser_peek_token (parser)->location, in c_parser_attribute_arguments()
4592 tree string = c_parser_string_literal (parser, false, true).value; in c_parser_attribute_arguments()
4597 expr_list = c_parser_expr_list (parser, false, true, in c_parser_attribute_arguments()
4634 c_parser_gnu_attribute (c_parser *parser, tree attrs,
4637 bool comma_first = c_parser_next_token_is (parser, CPP_COMMA);
4639 && !c_parser_next_token_is (parser, CPP_NAME)
4640 && !c_parser_next_token_is (parser, CPP_KEYWORD))
4643 while (c_parser_next_token_is (parser, CPP_COMMA))
4645 c_parser_consume_token (parser);
4650 tree attr_name = c_parser_gnu_attribute_any_word (parser);
4655 c_parser_consume_token (parser);
4658 if (c_parser_next_token_is_not (parser, CPP_OPEN_PAREN))
4664 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
4673 c_parser_consume_token (parser);
4676 = c_parser_attribute_arguments (parser,
4681 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
4682 c_parser_consume_token (parser);
4685 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
4694 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
4705 c_parser_gnu_attributes (c_parser *parser) in c_parser_gnu_attributes() argument
4708 while (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_gnu_attributes()
4710 bool save_translate_strings_p = parser->translate_strings_p; in c_parser_gnu_attributes()
4711 parser->translate_strings_p = false; in c_parser_gnu_attributes()
4713 c_parser_consume_token (parser); in c_parser_gnu_attributes()
4715 if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) in c_parser_gnu_attributes()
4717 parser->translate_strings_p = save_translate_strings_p; in c_parser_gnu_attributes()
4720 if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) in c_parser_gnu_attributes()
4722 parser->translate_strings_p = save_translate_strings_p; in c_parser_gnu_attributes()
4723 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_gnu_attributes()
4731 tree attr = c_parser_gnu_attribute (parser, attrs, expect_comma); in c_parser_gnu_attributes()
4740 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_gnu_attributes()
4741 c_parser_consume_token (parser); in c_parser_gnu_attributes()
4744 parser->translate_strings_p = save_translate_strings_p; in c_parser_gnu_attributes()
4745 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_gnu_attributes()
4749 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_gnu_attributes()
4750 c_parser_consume_token (parser); in c_parser_gnu_attributes()
4753 parser->translate_strings_p = save_translate_strings_p; in c_parser_gnu_attributes()
4754 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_gnu_attributes()
4758 parser->translate_strings_p = save_translate_strings_p; in c_parser_gnu_attributes()
4778 c_parser_balanced_token_sequence (c_parser *parser) in c_parser_balanced_token_sequence() argument
4782 c_token *token = c_parser_peek_token (parser); in c_parser_balanced_token_sequence()
4788 braces.consume_open (parser); in c_parser_balanced_token_sequence()
4789 c_parser_balanced_token_sequence (parser); in c_parser_balanced_token_sequence()
4790 braces.require_close (parser); in c_parser_balanced_token_sequence()
4797 parens.consume_open (parser); in c_parser_balanced_token_sequence()
4798 c_parser_balanced_token_sequence (parser); in c_parser_balanced_token_sequence()
4799 parens.require_close (parser); in c_parser_balanced_token_sequence()
4804 c_parser_consume_token (parser); in c_parser_balanced_token_sequence()
4805 c_parser_balanced_token_sequence (parser); in c_parser_balanced_token_sequence()
4806 c_parser_require (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); in c_parser_balanced_token_sequence()
4816 c_parser_consume_pragma (parser); in c_parser_balanced_token_sequence()
4817 c_parser_skip_to_pragma_eol (parser, false); in c_parser_balanced_token_sequence()
4821 c_parser_consume_token (parser); in c_parser_balanced_token_sequence()
4863 c_parser_std_attribute (c_parser *parser, bool for_tm) in c_parser_std_attribute() argument
4865 c_token *token = c_parser_peek_token (parser); in c_parser_std_attribute()
4871 c_parser_error (parser, "expected identifier"); in c_parser_std_attribute()
4875 c_parser_consume_token (parser); in c_parser_std_attribute()
4876 if (c_parser_next_token_is (parser, CPP_SCOPE)) in c_parser_std_attribute()
4879 c_parser_consume_token (parser); in c_parser_std_attribute()
4880 token = c_parser_peek_token (parser); in c_parser_std_attribute()
4883 c_parser_error (parser, "expected identifier"); in c_parser_std_attribute()
4887 c_parser_consume_token (parser); in c_parser_std_attribute()
4895 if (c_parser_next_token_is_not (parser, CPP_OPEN_PAREN)) in c_parser_std_attribute()
4898 location_t open_loc = c_parser_peek_token (parser)->location; in c_parser_std_attribute()
4900 parens.consume_open (parser); in c_parser_std_attribute()
4909 parens.skip_until_found_close (parser); in c_parser_std_attribute()
4922 = c_parser_attribute_arguments (parser, takes_identifier, in c_parser_std_attribute()
4926 c_parser_balanced_token_sequence (parser); in c_parser_std_attribute()
4927 parens.require_close (parser); in c_parser_std_attribute()
4945 c_parser_std_attribute_specifier (c_parser *parser, bool for_tm) in c_parser_std_attribute_specifier() argument
4950 location_t loc = c_parser_peek_token (parser)->location; in c_parser_std_attribute_specifier()
4951 if (!c_parser_require (parser, CPP_OPEN_SQUARE, "expected %<[%>")) in c_parser_std_attribute_specifier()
4953 if (!c_parser_require (parser, CPP_OPEN_SQUARE, "expected %<[%>")) in c_parser_std_attribute_specifier()
4955 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); in c_parser_std_attribute_specifier()
4964 c_token *token = c_parser_peek_token (parser); in c_parser_std_attribute_specifier()
4969 c_parser_consume_token (parser); in c_parser_std_attribute_specifier()
4972 tree attribute = c_parser_std_attribute (parser, for_tm); in c_parser_std_attribute_specifier()
5025 if (c_parser_next_token_is_not (parser, CPP_COMMA)) in c_parser_std_attribute_specifier()
5028 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); in c_parser_std_attribute_specifier()
5029 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); in c_parser_std_attribute_specifier()
5039 c_parser_check_balanced_raw_token_sequence (c_parser *parser, unsigned int *n) in c_parser_check_balanced_raw_token_sequence() argument
5043 c_token *token = c_parser_peek_nth_token_raw (parser, *n); in c_parser_check_balanced_raw_token_sequence()
5049 if (c_parser_check_balanced_raw_token_sequence (parser, n)) in c_parser_check_balanced_raw_token_sequence()
5051 token = c_parser_peek_nth_token_raw (parser, *n); in c_parser_check_balanced_raw_token_sequence()
5065 if (c_parser_check_balanced_raw_token_sequence (parser, n)) in c_parser_check_balanced_raw_token_sequence()
5067 token = c_parser_peek_nth_token_raw (parser, *n); in c_parser_check_balanced_raw_token_sequence()
5081 if (c_parser_check_balanced_raw_token_sequence (parser, n)) in c_parser_check_balanced_raw_token_sequence()
5083 token = c_parser_peek_nth_token_raw (parser, *n); in c_parser_check_balanced_raw_token_sequence()
5110 c_parser_nth_token_starts_std_attributes (c_parser *parser, unsigned int n) in c_parser_nth_token_starts_std_attributes() argument
5112 if (!(c_parser_peek_nth_token (parser, n)->type == CPP_OPEN_SQUARE in c_parser_nth_token_starts_std_attributes()
5113 && c_parser_peek_nth_token (parser, n + 1)->type == CPP_OPEN_SQUARE)) in c_parser_nth_token_starts_std_attributes()
5120 if (!c_parser_check_balanced_raw_token_sequence (parser, &n)) in c_parser_nth_token_starts_std_attributes()
5122 c_token *token = c_parser_peek_nth_token_raw (parser, n); in c_parser_nth_token_starts_std_attributes()
5125 token = c_parser_peek_nth_token_raw (parser, n + 1); in c_parser_nth_token_starts_std_attributes()
5130 c_parser_std_attribute_specifier_sequence (c_parser *parser) in c_parser_std_attribute_specifier_sequence() argument
5135 tree attrs = c_parser_std_attribute_specifier (parser, false); in c_parser_std_attribute_specifier_sequence()
5138 while (c_parser_nth_token_starts_std_attributes (parser, 1)); in c_parser_std_attribute_specifier_sequence()
5151 c_parser_type_name (c_parser *parser, bool alignas_ok) in c_parser_type_name() argument
5157 c_parser_declspecs (parser, specs, false, true, true, alignas_ok, false, in c_parser_type_name()
5161 c_parser_error (parser, "expected specifier-qualifier-list"); in c_parser_type_name()
5169 declarator = c_parser_declarator (parser, in c_parser_type_name()
5224 c_parser_initializer (c_parser *parser) in c_parser_initializer() argument
5226 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_initializer()
5227 return c_parser_braced_init (parser, NULL_TREE, false, NULL); in c_parser_initializer()
5231 location_t loc = c_parser_peek_token (parser)->location; in c_parser_initializer()
5232 ret = c_parser_expr_no_commas (parser, NULL); in c_parser_initializer()
5252 c_parser_braced_init (c_parser *parser, tree type, bool nested_p, in c_parser_braced_init() argument
5257 location_t brace_loc = c_parser_peek_token (parser)->location; in c_parser_braced_init()
5259 gcc_assert (c_parser_next_token_is (parser, CPP_OPEN_BRACE)); in c_parser_braced_init()
5261 braces.consume_open (parser); in c_parser_braced_init()
5269 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_braced_init()
5279 c_parser_initelt (parser, &braced_init_obstack); in c_parser_braced_init()
5280 if (parser->error) in c_parser_braced_init()
5282 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_braced_init()
5284 last_init_list_comma = c_parser_peek_token (parser)->location; in c_parser_braced_init()
5285 c_parser_consume_token (parser); in c_parser_braced_init()
5289 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_braced_init()
5293 c_token *next_tok = c_parser_peek_token (parser); in c_parser_braced_init()
5299 braces.skip_until_found_close (parser); in c_parser_braced_init()
5305 c_parser_consume_token (parser); in c_parser_braced_init()
5315 c_parser_initelt (c_parser *parser, struct obstack * braced_init_obstack) in c_parser_initelt() argument
5320 if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_initelt()
5321 && c_parser_peek_2nd_token (parser)->type == CPP_COLON) in c_parser_initelt()
5324 set_init_label (c_parser_peek_token (parser)->location, in c_parser_initelt()
5325 c_parser_peek_token (parser)->value, in c_parser_initelt()
5326 c_parser_peek_token (parser)->location, in c_parser_initelt()
5329 pedwarn (c_parser_peek_2nd_token (parser)->location, OPT_Wpedantic, in c_parser_initelt()
5331 c_parser_consume_token (parser); in c_parser_initelt()
5332 c_parser_consume_token (parser); in c_parser_initelt()
5341 while (c_parser_next_token_is (parser, CPP_OPEN_SQUARE) in c_parser_initelt()
5342 || c_parser_next_token_is (parser, CPP_DOT)) in c_parser_initelt()
5346 des_loc = c_parser_peek_token (parser)->location; in c_parser_initelt()
5349 if (c_parser_next_token_is (parser, CPP_DOT)) in c_parser_initelt()
5352 c_parser_consume_token (parser); in c_parser_initelt()
5353 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_initelt()
5355 set_init_label (des_loc, c_parser_peek_token (parser)->value, in c_parser_initelt()
5356 c_parser_peek_token (parser)->location, in c_parser_initelt()
5358 c_parser_consume_token (parser); in c_parser_initelt()
5366 c_parser_error (parser, "expected identifier"); in c_parser_initelt()
5367 c_parser_skip_until_found (parser, CPP_COMMA, NULL); in c_parser_initelt()
5405 c_parser_consume_token (parser); in c_parser_initelt()
5406 if (c_parser_peek_token (parser)->type == CPP_NAME in c_parser_initelt()
5407 && ((c_parser_peek_token (parser)->id_kind in c_parser_initelt()
5409 || (c_parser_peek_token (parser)->id_kind in c_parser_initelt()
5413 tree id = c_parser_peek_token (parser)->value; in c_parser_initelt()
5414 c_parser_consume_token (parser); in c_parser_initelt()
5418 first = c_parser_expr_no_commas (parser, NULL).value; in c_parser_initelt()
5420 if (c_parser_next_token_is (parser, CPP_ELLIPSIS) in c_parser_initelt()
5421 || c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) in c_parser_initelt()
5427 while (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_initelt()
5431 comma_loc = c_parser_peek_token (parser)->location; in c_parser_initelt()
5432 c_parser_consume_token (parser); in c_parser_initelt()
5433 exp_loc = c_parser_peek_token (parser)->location; in c_parser_initelt()
5434 next = c_parser_expr_no_commas (parser, NULL); in c_parser_initelt()
5441 args = c_parser_objc_message_args (parser); in c_parser_initelt()
5442 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, in c_parser_initelt()
5451 c_parser_initval (parser, &mexpr, braced_init_obstack); in c_parser_initelt()
5454 c_parser_consume_token (parser); in c_parser_initelt()
5455 array_index_loc = c_parser_peek_token (parser)->location; in c_parser_initelt()
5456 first = c_parser_expr_no_commas (parser, NULL).value; in c_parser_initelt()
5459 if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) in c_parser_initelt()
5461 ellipsis_loc = c_parser_peek_token (parser)->location; in c_parser_initelt()
5462 c_parser_consume_token (parser); in c_parser_initelt()
5463 second = c_parser_expr_no_commas (parser, NULL).value; in c_parser_initelt()
5468 if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) in c_parser_initelt()
5470 c_parser_consume_token (parser); in c_parser_initelt()
5478 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, in c_parser_initelt()
5484 if (c_parser_next_token_is (parser, CPP_EQ)) in c_parser_initelt()
5489 c_parser_consume_token (parser); in c_parser_initelt()
5494 pedwarn (c_parser_peek_token (parser)->location, OPT_Wpedantic, in c_parser_initelt()
5502 c_parser_error (parser, "expected %<=%>"); in c_parser_initelt()
5503 c_parser_skip_until_found (parser, CPP_COMMA, NULL); in c_parser_initelt()
5511 c_parser_initval (parser, NULL, braced_init_obstack); in c_parser_initelt()
5521 c_parser_initval (c_parser *parser, struct c_expr *after, in c_parser_initval() argument
5526 location_t loc = c_parser_peek_token (parser)->location; in c_parser_initval()
5528 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE) && !after) in c_parser_initval()
5529 init = c_parser_braced_init (parser, NULL_TREE, true, in c_parser_initval()
5533 init = c_parser_expr_no_commas (parser, after); in c_parser_initval()
5608 c_parser_compound_statement (c_parser *parser, location_t *endlocp) in c_parser_compound_statement() argument
5612 brace_loc = c_parser_peek_token (parser)->location; in c_parser_compound_statement()
5613 if (!c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) in c_parser_compound_statement()
5622 location_t end_loc = c_parser_compound_statement_nostart (parser); in c_parser_compound_statement()
5634 c_parser_compound_statement_nostart (c_parser *parser) in c_parser_compound_statement_nostart() argument
5640 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_compound_statement_nostart()
5642 location_t endloc = c_parser_peek_token (parser)->location; in c_parser_compound_statement_nostart()
5644 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5648 if (c_parser_next_token_is_keyword (parser, RID_LABEL)) in c_parser_compound_statement_nostart()
5653 while (c_parser_next_token_is_keyword (parser, RID_LABEL)) in c_parser_compound_statement_nostart()
5655 label_loc = c_parser_peek_token (parser)->location; in c_parser_compound_statement_nostart()
5656 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5662 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_compound_statement_nostart()
5664 c_parser_error (parser, "expected identifier"); in c_parser_compound_statement_nostart()
5668 = declare_label (c_parser_peek_token (parser)->value); in c_parser_compound_statement_nostart()
5671 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5672 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_compound_statement_nostart()
5673 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5677 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_compound_statement_nostart()
5682 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_compound_statement_nostart()
5685 c_parser_error (parser, "expected declaration or statement"); in c_parser_compound_statement_nostart()
5686 location_t endloc = c_parser_peek_token (parser)->location; in c_parser_compound_statement_nostart()
5687 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5690 while (c_parser_next_token_is_not (parser, CPP_CLOSE_BRACE)) in c_parser_compound_statement_nostart()
5692 location_t loc = c_parser_peek_token (parser)->location; in c_parser_compound_statement_nostart()
5696 = c_parser_nth_token_starts_std_attributes (parser, 1); in c_parser_compound_statement_nostart()
5699 std_attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_compound_statement_nostart()
5700 if (c_parser_next_token_is_keyword (parser, RID_CASE) in c_parser_compound_statement_nostart()
5701 || c_parser_next_token_is_keyword (parser, RID_DEFAULT) in c_parser_compound_statement_nostart()
5702 || (c_parser_next_token_is (parser, CPP_NAME) in c_parser_compound_statement_nostart()
5703 && c_parser_peek_2nd_token (parser)->type == CPP_COLON)) in c_parser_compound_statement_nostart()
5706 if (c_parser_next_token_is_keyword (parser, RID_CASE)) in c_parser_compound_statement_nostart()
5707 label_loc = c_parser_peek_2nd_token (parser)->location; in c_parser_compound_statement_nostart()
5709 label_loc = c_parser_peek_token (parser)->location; in c_parser_compound_statement_nostart()
5713 c_parser_label (parser); in c_parser_compound_statement_nostart()
5716 && (c_parser_next_tokens_start_declaration (parser) in c_parser_compound_statement_nostart()
5718 && c_parser_next_token_is (parser, CPP_SEMICOLON)))) in c_parser_compound_statement_nostart()
5723 c_parser_declaration_or_fndef (parser, true, !have_std_attrs, in c_parser_compound_statement_nostart()
5733 && c_parser_next_token_is_keyword (parser, RID_EXTENSION)) in c_parser_compound_statement_nostart()
5742 while (c_parser_peek_2nd_token (parser)->type == CPP_KEYWORD in c_parser_compound_statement_nostart()
5743 && (c_parser_peek_2nd_token (parser)->keyword in c_parser_compound_statement_nostart()
5745 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5747 && (c_token_starts_declaration (c_parser_peek_2nd_token (parser)) in c_parser_compound_statement_nostart()
5748 || c_parser_nth_token_starts_std_attributes (parser, 2))) in c_parser_compound_statement_nostart()
5752 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5755 c_parser_declaration_or_fndef (parser, true, true, true, true, in c_parser_compound_statement_nostart()
5768 else if (c_parser_next_token_is (parser, CPP_PRAGMA)) in c_parser_compound_statement_nostart()
5771 c_parser_error (parser, "expected declaration or statement"); in c_parser_compound_statement_nostart()
5777 if (c_parser_pragma (parser, in c_parser_compound_statement_nostart()
5782 else if (c_parser_next_token_is (parser, CPP_EOF)) in c_parser_compound_statement_nostart()
5785 c_parser_error (parser, "expected declaration or statement"); in c_parser_compound_statement_nostart()
5786 return c_parser_peek_token (parser)->location; in c_parser_compound_statement_nostart()
5788 else if (c_parser_next_token_is_keyword (parser, RID_ELSE)) in c_parser_compound_statement_nostart()
5790 if (parser->in_if_block) in c_parser_compound_statement_nostart()
5794 return c_parser_peek_token (parser)->location; in c_parser_compound_statement_nostart()
5799 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5810 c_parser_statement_after_labels (parser, NULL); in c_parser_compound_statement_nostart()
5813 parser->error = false; in c_parser_compound_statement_nostart()
5817 location_t endloc = c_parser_peek_token (parser)->location; in c_parser_compound_statement_nostart()
5818 c_parser_consume_token (parser); in c_parser_compound_statement_nostart()
5830 c_parser_all_labels (c_parser *parser) in c_parser_all_labels() argument
5832 if (c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_all_labels()
5834 tree std_attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_all_labels()
5835 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_all_labels()
5836 c_parser_error (parser, "expected statement"); in c_parser_all_labels()
5840 while (c_parser_next_token_is_keyword (parser, RID_CASE) in c_parser_all_labels()
5841 || c_parser_next_token_is_keyword (parser, RID_DEFAULT) in c_parser_all_labels()
5842 || (c_parser_next_token_is (parser, CPP_NAME) in c_parser_all_labels()
5843 && c_parser_peek_2nd_token (parser)->type == CPP_COLON)) in c_parser_all_labels()
5844 c_parser_label (parser); in c_parser_all_labels()
5868 c_parser_label (c_parser *parser) in c_parser_label() argument
5870 location_t loc1 = c_parser_peek_token (parser)->location; in c_parser_label()
5875 bool fallthrough_p = c_parser_peek_token (parser)->flags & PREV_FALLTHROUGH; in c_parser_label()
5877 if (c_parser_next_token_is_keyword (parser, RID_CASE)) in c_parser_label()
5880 c_parser_consume_token (parser); in c_parser_label()
5881 exp1 = c_parser_expr_no_commas (parser, NULL).value; in c_parser_label()
5882 if (c_parser_next_token_is (parser, CPP_COLON)) in c_parser_label()
5884 c_parser_consume_token (parser); in c_parser_label()
5887 else if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) in c_parser_label()
5889 c_parser_consume_token (parser); in c_parser_label()
5890 exp2 = c_parser_expr_no_commas (parser, NULL).value; in c_parser_label()
5891 if (c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_label()
5895 c_parser_error (parser, "expected %<:%> or %<...%>"); in c_parser_label()
5897 else if (c_parser_next_token_is_keyword (parser, RID_DEFAULT)) in c_parser_label()
5899 c_parser_consume_token (parser); in c_parser_label()
5900 if (c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_label()
5905 tree name = c_parser_peek_token (parser)->value; in c_parser_label()
5908 location_t loc2 = c_parser_peek_token (parser)->location; in c_parser_label()
5909 gcc_assert (c_parser_next_token_is (parser, CPP_NAME)); in c_parser_label()
5910 c_parser_consume_token (parser); in c_parser_label()
5911 gcc_assert (c_parser_next_token_is (parser, CPP_COLON)); in c_parser_label()
5912 c_parser_consume_token (parser); in c_parser_label()
5913 attrs = c_parser_gnu_attributes (parser); in c_parser_label()
5932 = c_parser_nth_token_starts_std_attributes (parser, 1); in c_parser_label()
5935 std_attrs = c_parser_std_attribute_specifier_sequence (parser); in c_parser_label()
5939 && c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_label()
5941 location_t loc = c_parser_peek_token (parser)->location; in c_parser_label()
5942 tree attrs = c_parser_gnu_attributes (parser); in c_parser_label()
5945 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_label()
5960 if (c_parser_next_tokens_start_declaration (parser) in c_parser_label()
5962 && c_parser_next_token_is (parser, CPP_SEMICOLON))) in c_parser_label()
5964 error_at (c_parser_peek_token (parser)->location, in c_parser_label()
5967 c_parser_declaration_or_fndef (parser, /*fndef_ok*/ false, in c_parser_label()
6126 c_parser_statement (c_parser *parser, bool *if_p, location_t *loc_after_labels) in c_parser_statement() argument
6128 c_parser_all_labels (parser); in c_parser_statement()
6130 *loc_after_labels = c_parser_peek_token (parser)->location; in c_parser_statement()
6131 c_parser_statement_after_labels (parser, if_p, NULL); in c_parser_statement()
6143 c_parser_statement_after_labels (c_parser *parser, bool *if_p, in c_parser_statement_after_labels() argument
6146 location_t loc = c_parser_peek_token (parser)->location; in c_parser_statement_after_labels()
6148 bool in_if_block = parser->in_if_block; in c_parser_statement_after_labels()
6149 parser->in_if_block = false; in c_parser_statement_after_labels()
6153 if (c_parser_peek_token (parser)->type != CPP_OPEN_BRACE) in c_parser_statement_after_labels()
6156 switch (c_parser_peek_token (parser)->type) in c_parser_statement_after_labels()
6159 add_stmt (c_parser_compound_statement (parser)); in c_parser_statement_after_labels()
6162 switch (c_parser_peek_token (parser)->keyword) in c_parser_statement_after_labels()
6165 c_parser_if_statement (parser, if_p, chain); in c_parser_statement_after_labels()
6168 c_parser_switch_statement (parser, if_p); in c_parser_statement_after_labels()
6171 c_parser_while_statement (parser, false, 0, if_p); in c_parser_statement_after_labels()
6174 c_parser_do_statement (parser, 0, false); in c_parser_statement_after_labels()
6177 c_parser_for_statement (parser, false, 0, if_p); in c_parser_statement_after_labels()
6180 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6181 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_statement_after_labels()
6184 c_parser_peek_token (parser)->value); in c_parser_statement_after_labels()
6185 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6187 else if (c_parser_next_token_is (parser, CPP_MULT)) in c_parser_statement_after_labels()
6191 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6192 val = c_parser_expression (parser); in c_parser_statement_after_labels()
6197 c_parser_error (parser, "expected identifier or %<*%>"); in c_parser_statement_after_labels()
6200 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6204 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6208 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6209 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_statement_after_labels()
6212 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6216 location_t xloc = c_parser_peek_token (parser)->location; in c_parser_statement_after_labels()
6217 struct c_expr expr = c_parser_expression_conv (parser); in c_parser_statement_after_labels()
6225 stmt = c_parser_asm_statement (parser); in c_parser_statement_after_labels()
6229 stmt = c_parser_transaction (parser, in c_parser_statement_after_labels()
6230 c_parser_peek_token (parser)->keyword); in c_parser_statement_after_labels()
6233 stmt = c_parser_transaction_cancel (parser); in c_parser_statement_after_labels()
6237 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6238 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_statement_after_labels()
6241 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6245 struct c_expr expr = c_parser_expression (parser); in c_parser_statement_after_labels()
6254 c_parser_objc_try_catch_finally_statement (parser); in c_parser_statement_after_labels()
6258 c_parser_objc_synchronized_statement (parser); in c_parser_statement_after_labels()
6263 tree attrs = c_parser_gnu_attributes (parser); in c_parser_statement_after_labels()
6266 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_statement_after_labels()
6273 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6290 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6298 c_parser_error (parser, "expected statement"); in c_parser_statement_after_labels()
6299 c_parser_consume_token (parser); in c_parser_statement_after_labels()
6302 c_parser_pragma (parser, pragma_stmt, if_p); in c_parser_statement_after_labels()
6306 stmt = c_finish_expr_stmt (loc, c_parser_expression_conv (parser).value); in c_parser_statement_after_labels()
6308 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_statement_after_labels()
6324 parser->in_if_block = in_if_block; in c_parser_statement_after_labels()
6330 c_parser_condition (c_parser *parser) in c_parser_condition() argument
6332 location_t loc = c_parser_peek_token (parser)->location; in c_parser_condition()
6334 cond = c_parser_expression_conv (parser).value; in c_parser_condition()
6348 c_parser_paren_condition (c_parser *parser) in c_parser_paren_condition() argument
6352 if (!parens.require_open (parser)) in c_parser_paren_condition()
6354 cond = c_parser_condition (parser); in c_parser_paren_condition()
6355 parens.skip_until_found_close (parser); in c_parser_paren_condition()
6366 c_parser_c99_block_statement (c_parser *parser, bool *if_p, in c_parser_c99_block_statement() argument
6370 location_t loc = c_parser_peek_token (parser)->location; in c_parser_c99_block_statement()
6371 c_parser_statement (parser, if_p, loc_after_labels); in c_parser_c99_block_statement()
6388 c_parser_if_body (c_parser *parser, bool *if_p, in c_parser_if_body() argument
6392 location_t body_loc = c_parser_peek_token (parser)->location; in c_parser_if_body()
6395 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_if_body()
6397 c_parser_all_labels (parser); in c_parser_if_body()
6398 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_if_body()
6400 location_t loc = c_parser_peek_token (parser)->location; in c_parser_if_body()
6402 c_parser_consume_token (parser); in c_parser_if_body()
6403 if (!c_parser_next_token_is_keyword (parser, RID_ELSE)) in c_parser_if_body()
6407 else if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_if_body()
6408 add_stmt (c_parser_compound_statement (parser)); in c_parser_if_body()
6411 body_loc_after_labels = c_parser_peek_token (parser)->location; in c_parser_if_body()
6412 c_parser_statement_after_labels (parser, if_p); in c_parser_if_body()
6416 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_if_body()
6432 c_parser_else_body (c_parser *parser, const token_indent_info &else_tinfo, in c_parser_else_body() argument
6435 location_t body_loc = c_parser_peek_token (parser)->location; in c_parser_else_body()
6438 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_else_body()
6441 c_parser_all_labels (parser); in c_parser_else_body()
6442 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_else_body()
6444 location_t loc = c_parser_peek_token (parser)->location; in c_parser_else_body()
6449 c_parser_consume_token (parser); in c_parser_else_body()
6453 if (!c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_else_body()
6454 body_loc_after_labels = c_parser_peek_token (parser)->location; in c_parser_else_body()
6455 c_parser_statement_after_labels (parser, NULL, chain); in c_parser_else_body()
6459 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_else_body()
6474 c_parser_maybe_reclassify_token (c_parser *parser) in c_parser_maybe_reclassify_token() argument
6476 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_maybe_reclassify_token()
6478 c_token *token = c_parser_peek_token (parser); in c_parser_maybe_reclassify_token()
6518 c_parser_if_statement (c_parser *parser, bool *if_p, vec<tree> *chain) in c_parser_if_statement() argument
6527 gcc_assert (c_parser_next_token_is_keyword (parser, RID_IF)); in c_parser_if_statement()
6529 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_if_statement()
6530 c_parser_consume_token (parser); in c_parser_if_statement()
6532 loc = c_parser_peek_token (parser)->location; in c_parser_if_statement()
6533 cond = c_parser_paren_condition (parser); in c_parser_if_statement()
6534 in_if_block = parser->in_if_block; in c_parser_if_statement()
6535 parser->in_if_block = true; in c_parser_if_statement()
6536 first_body = c_parser_if_body (parser, &nested_if, if_tinfo); in c_parser_if_statement()
6537 parser->in_if_block = in_if_block; in c_parser_if_statement()
6542 if (c_parser_next_token_is_keyword (parser, RID_ELSE)) in c_parser_if_statement()
6545 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_if_statement()
6546 c_parser_consume_token (parser); in c_parser_if_statement()
6549 if (c_parser_next_token_is_keyword (parser, RID_IF) in c_parser_if_statement()
6558 else if (!c_parser_next_token_is_keyword (parser, RID_IF)) in c_parser_if_statement()
6566 second_body = c_parser_else_body (parser, else_tinfo, chain); in c_parser_if_statement()
6594 c_parser_maybe_reclassify_token (parser); in c_parser_if_statement()
6604 c_parser_switch_statement (c_parser *parser, bool *if_p) in c_parser_switch_statement() argument
6608 location_t switch_loc = c_parser_peek_token (parser)->location; in c_parser_switch_statement()
6610 gcc_assert (c_parser_next_token_is_keyword (parser, RID_SWITCH)); in c_parser_switch_statement()
6611 c_parser_consume_token (parser); in c_parser_switch_statement()
6615 if (parens.require_open (parser)) in c_parser_switch_statement()
6617 switch_cond_loc = c_parser_peek_token (parser)->location; in c_parser_switch_statement()
6618 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN) in c_parser_switch_statement()
6619 && c_token_starts_typename (c_parser_peek_2nd_token (parser))) in c_parser_switch_statement()
6621 ce = c_parser_expression (parser); in c_parser_switch_statement()
6625 parens.skip_until_found_close (parser); in c_parser_switch_statement()
6637 bool open_brace_p = c_parser_peek_token (parser)->type == CPP_OPEN_BRACE; in c_parser_switch_statement()
6638 body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels); in c_parser_switch_statement()
6639 location_t next_loc = c_parser_peek_token (parser)->location; in c_parser_switch_statement()
6640 if (!open_brace_p && c_parser_peek_token (parser)->type != CPP_SEMICOLON) in c_parser_switch_statement()
6645 location_t here = c_parser_peek_token (parser)->location; in c_parser_switch_statement()
6654 c_parser_maybe_reclassify_token (parser); in c_parser_switch_statement()
6667 c_parser_while_statement (c_parser *parser, bool ivdep, unsigned short unroll, in c_parser_while_statement() argument
6672 gcc_assert (c_parser_next_token_is_keyword (parser, RID_WHILE)); in c_parser_while_statement()
6674 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_while_statement()
6675 c_parser_consume_token (parser); in c_parser_while_statement()
6677 loc = c_parser_peek_token (parser)->location; in c_parser_while_statement()
6678 cond = c_parser_paren_condition (parser); in c_parser_while_statement()
6695 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_while_statement()
6698 bool open_brace = c_parser_next_token_is (parser, CPP_OPEN_BRACE); in c_parser_while_statement()
6699 body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels); in c_parser_while_statement()
6703 c_parser_maybe_reclassify_token (parser); in c_parser_while_statement()
6706 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_while_statement()
6724 c_parser_do_statement (c_parser *parser, bool ivdep, unsigned short unroll) in c_parser_do_statement() argument
6728 gcc_assert (c_parser_next_token_is_keyword (parser, RID_DO)); in c_parser_do_statement()
6729 c_parser_consume_token (parser); in c_parser_do_statement()
6730 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_do_statement()
6731 warning_at (c_parser_peek_token (parser)->location, in c_parser_do_statement()
6735 loc = c_parser_peek_token (parser)->location; in c_parser_do_statement()
6740 body = c_parser_c99_block_statement (parser, NULL); in c_parser_do_statement()
6741 c_parser_require_keyword (parser, RID_WHILE, "expected %<while%>"); in c_parser_do_statement()
6746 location_t cond_loc = c_parser_peek_token (parser)->location; in c_parser_do_statement()
6747 cond = c_parser_paren_condition (parser); in c_parser_do_statement()
6758 if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) in c_parser_do_statement()
6759 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_do_statement()
6825 c_parser_for_statement (c_parser *parser, bool ivdep, unsigned short unroll, in c_parser_for_statement() argument
6833 location_t loc = c_parser_peek_token (parser)->location; in c_parser_for_statement()
6838 gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR)); in c_parser_for_statement()
6840 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_for_statement()
6841 c_parser_consume_token (parser); in c_parser_for_statement()
6848 if (parens.require_open (parser)) in c_parser_for_statement()
6852 parser->objc_could_be_foreach_context = c_dialect_objc (); in c_parser_for_statement()
6853 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_for_statement()
6855 parser->objc_could_be_foreach_context = false; in c_parser_for_statement()
6856 c_parser_consume_token (parser); in c_parser_for_statement()
6859 else if (c_parser_next_tokens_start_declaration (parser) in c_parser_for_statement()
6860 || c_parser_nth_token_starts_std_attributes (parser, 1)) in c_parser_for_statement()
6862 c_parser_declaration_or_fndef (parser, true, true, true, true, true, in c_parser_for_statement()
6864 parser->objc_could_be_foreach_context = false; in c_parser_for_statement()
6866 if (c_parser_next_token_is_keyword (parser, RID_IN)) in c_parser_for_statement()
6868 c_parser_consume_token (parser); in c_parser_for_statement()
6871 c_parser_error (parser, "multiple iterating variables in " in c_parser_for_statement()
6877 else if (c_parser_next_token_is_keyword (parser, RID_EXTENSION)) in c_parser_for_statement()
6883 while (c_parser_peek_2nd_token (parser)->type == CPP_KEYWORD in c_parser_for_statement()
6884 && (c_parser_peek_2nd_token (parser)->keyword in c_parser_for_statement()
6886 c_parser_consume_token (parser); in c_parser_for_statement()
6887 if (c_token_starts_declaration (c_parser_peek_2nd_token (parser)) in c_parser_for_statement()
6888 || c_parser_nth_token_starts_std_attributes (parser, 2)) in c_parser_for_statement()
6892 c_parser_consume_token (parser); in c_parser_for_statement()
6893 c_parser_declaration_or_fndef (parser, true, true, true, true, in c_parser_for_statement()
6895 parser->objc_could_be_foreach_context = false; in c_parser_for_statement()
6898 if (c_parser_next_token_is_keyword (parser, RID_IN)) in c_parser_for_statement()
6900 c_parser_consume_token (parser); in c_parser_for_statement()
6903 c_parser_error (parser, "multiple iterating variables in " in c_parser_for_statement()
6918 ce = c_parser_expression (parser); in c_parser_for_statement()
6920 parser->objc_could_be_foreach_context = false; in c_parser_for_statement()
6921 if (c_parser_next_token_is_keyword (parser, RID_IN)) in c_parser_for_statement()
6923 c_parser_consume_token (parser); in c_parser_for_statement()
6926 c_parser_error (parser, "invalid iterating variable in " in c_parser_for_statement()
6936 c_parser_skip_until_found (parser, CPP_SEMICOLON, in c_parser_for_statement()
6943 gcc_assert (!parser->objc_could_be_foreach_context); in c_parser_for_statement()
6946 cond_loc = c_parser_peek_token (parser)->location; in c_parser_for_statement()
6947 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_for_statement()
6951 c_parser_error (parser, "missing loop condition in loop " in c_parser_for_statement()
6957 c_parser_error (parser, "missing loop condition in loop " in c_parser_for_statement()
6963 c_parser_consume_token (parser); in c_parser_for_statement()
6969 cond = c_parser_condition (parser); in c_parser_for_statement()
6970 c_parser_skip_until_found (parser, CPP_SEMICOLON, in c_parser_for_statement()
6987 loc = incr_loc = c_parser_peek_token (parser)->location; in c_parser_for_statement()
6988 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_for_statement()
6992 c_parser_error (parser, in c_parser_for_statement()
7003 = c_fully_fold (c_parser_expression (parser).value, false, NULL); in c_parser_for_statement()
7006 struct c_expr ce = c_parser_expression (parser); in c_parser_for_statement()
7011 parens.skip_until_found_close (parser); in c_parser_for_statement()
7019 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_for_statement()
7022 bool open_brace = c_parser_next_token_is (parser, CPP_OPEN_BRACE); in c_parser_for_statement()
7023 body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels); in c_parser_for_statement()
7034 c_parser_maybe_reclassify_token (parser); in c_parser_for_statement()
7037 = get_token_indent_info (c_parser_peek_token (parser)); in c_parser_for_statement()
7080 c_parser_asm_statement (c_parser *parser) in c_parser_asm_statement() argument
7084 location_t asm_loc = c_parser_peek_token (parser)->location; in c_parser_asm_statement()
7087 gcc_assert (c_parser_next_token_is_keyword (parser, RID_ASM)); in c_parser_asm_statement()
7088 c_parser_consume_token (parser); in c_parser_asm_statement()
7096 c_token *token = c_parser_peek_token (parser); in c_parser_asm_statement()
7108 c_parser_consume_token (parser); in c_parser_asm_statement()
7119 c_parser_consume_token (parser); in c_parser_asm_statement()
7130 c_parser_consume_token (parser); in c_parser_asm_statement()
7136 c_parser_consume_token (parser); in c_parser_asm_statement()
7152 if (!parens.require_open (parser)) in c_parser_asm_statement()
7155 str = c_parser_asm_string_literal (parser); in c_parser_asm_statement()
7165 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN) && !is_goto) in c_parser_asm_statement()
7172 if (c_parser_next_token_is (parser, CPP_SCOPE)) in c_parser_asm_statement()
7177 c_parser_error (parser, "expected %<)%>"); in c_parser_asm_statement()
7180 c_parser_consume_token (parser); in c_parser_asm_statement()
7182 else if (!c_parser_require (parser, CPP_COLON, in c_parser_asm_statement()
7192 if ((!c_parser_next_token_is (parser, CPP_COLON) in c_parser_asm_statement()
7193 && !c_parser_next_token_is (parser, CPP_SCOPE) in c_parser_asm_statement()
7194 && !c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_asm_statement()
7202 outputs = c_parser_asm_operands (parser); in c_parser_asm_statement()
7205 inputs = c_parser_asm_operands (parser); in c_parser_asm_statement()
7208 clobbers = c_parser_asm_clobbers (parser); in c_parser_asm_statement()
7211 labels = c_parser_asm_goto_operands (parser); in c_parser_asm_statement()
7217 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN) && !is_goto) in c_parser_asm_statement()
7222 if (!parens.require_close (parser)) in c_parser_asm_statement()
7224 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_asm_statement()
7228 if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) in c_parser_asm_statement()
7229 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_asm_statement()
7239 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_asm_statement()
7255 c_parser_asm_operands (c_parser *parser) in c_parser_asm_operands() argument
7262 if (c_parser_next_token_is (parser, CPP_OPEN_SQUARE)) in c_parser_asm_operands()
7264 c_parser_consume_token (parser); in c_parser_asm_operands()
7265 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_asm_operands()
7267 tree id = c_parser_peek_token (parser)->value; in c_parser_asm_operands()
7268 c_parser_consume_token (parser); in c_parser_asm_operands()
7274 c_parser_error (parser, "expected identifier"); in c_parser_asm_operands()
7275 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, NULL); in c_parser_asm_operands()
7278 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, in c_parser_asm_operands()
7283 str = c_parser_asm_string_literal (parser); in c_parser_asm_operands()
7287 if (!parens.require_open (parser)) in c_parser_asm_operands()
7289 expr = c_parser_expression (parser); in c_parser_asm_operands()
7291 if (!parens.require_close (parser)) in c_parser_asm_operands()
7293 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_asm_operands()
7298 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_asm_operands()
7299 c_parser_consume_token (parser); in c_parser_asm_operands()
7314 c_parser_asm_clobbers (c_parser *parser) in c_parser_asm_clobbers() argument
7319 tree str = c_parser_asm_string_literal (parser); in c_parser_asm_clobbers()
7324 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_asm_clobbers()
7325 c_parser_consume_token (parser); in c_parser_asm_clobbers()
7340 c_parser_asm_goto_operands (c_parser *parser) in c_parser_asm_goto_operands() argument
7347 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_asm_goto_operands()
7349 c_token *tok = c_parser_peek_token (parser); in c_parser_asm_goto_operands()
7352 c_parser_consume_token (parser); in c_parser_asm_goto_operands()
7357 c_parser_error (parser, "expected identifier"); in c_parser_asm_goto_operands()
7364 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_asm_goto_operands()
7365 c_parser_consume_token (parser); in c_parser_asm_goto_operands()
7378 c_parser_string_literal (c_parser *parser, bool translate, bool wide_ok) in c_parser_string_literal() argument
7390 tok = c_parser_peek_token (parser); in c_parser_string_literal()
7407 c_parser_error (parser, "expected string literal"); in c_parser_string_literal()
7417 switch (c_parser_peek_2nd_token (parser)->type) in c_parser_string_literal()
7420 c_parser_consume_token (parser); in c_parser_string_literal()
7437 c_parser_consume_token (parser); in c_parser_string_literal()
7451 tok = c_parser_peek_token (parser); in c_parser_string_literal()
7567 c_parser_expr_no_commas (c_parser *parser, struct c_expr *after, in c_parser_expr_no_commas() argument
7574 lhs = c_parser_conditional_expression (parser, after, omp_atomic_lhs); in c_parser_expr_no_commas()
7575 op_location = c_parser_peek_token (parser)->location; in c_parser_expr_no_commas()
7576 switch (c_parser_peek_token (parser)->type) in c_parser_expr_no_commas()
7614 c_parser_consume_token (parser); in c_parser_expr_no_commas()
7615 exp_location = c_parser_peek_token (parser)->location; in c_parser_expr_no_commas()
7616 rhs = c_parser_expr_no_commas (parser, NULL); in c_parser_expr_no_commas()
7649 c_parser_conditional_expression (c_parser *parser, struct c_expr *after, in c_parser_conditional_expression() argument
7657 cond = c_parser_binary_expression (parser, after, omp_atomic_lhs); in c_parser_conditional_expression()
7659 if (c_parser_next_token_is_not (parser, CPP_QUERY)) in c_parser_conditional_expression()
7665 cond_loc = c_parser_peek_token (parser)->location; in c_parser_conditional_expression()
7667 c_parser_consume_token (parser); in c_parser_conditional_expression()
7668 if (c_parser_next_token_is (parser, CPP_COLON)) in c_parser_conditional_expression()
7672 location_t middle_loc = c_parser_peek_token (parser)->location; in c_parser_conditional_expression()
7699 exp1 = c_parser_expression_conv (parser); in c_parser_conditional_expression()
7706 colon_loc = c_parser_peek_token (parser)->location; in c_parser_conditional_expression()
7707 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_conditional_expression()
7716 location_t exp2_loc = c_parser_peek_token (parser)->location; in c_parser_conditional_expression()
7717 exp2 = c_parser_conditional_expression (parser, NULL, NULL_TREE); in c_parser_conditional_expression()
7811 c_parser_binary_expression (c_parser *parser, struct c_expr *after, in c_parser_binary_expression() argument
7902 && c_parser_peek_token (parser)->type == CPP_SEMICOLON \ in c_parser_binary_expression()
7926 stack[0].loc = c_parser_peek_token (parser)->location; in c_parser_binary_expression()
7927 stack[0].expr = c_parser_cast_expression (parser, after); in c_parser_binary_expression()
7936 if (parser->error) in c_parser_binary_expression()
7938 switch (c_parser_peek_token (parser)->type) in c_parser_binary_expression()
8017 binary_loc = c_parser_peek_token (parser)->location; in c_parser_binary_expression()
8020 c_parser_consume_token (parser); in c_parser_binary_expression()
8050 stack[sp].expr = c_parser_cast_expression (parser, NULL); in c_parser_binary_expression()
8072 c_parser_cast_expression (c_parser *parser, struct c_expr *after) in c_parser_cast_expression() argument
8074 location_t cast_loc = c_parser_peek_token (parser)->location; in c_parser_cast_expression()
8077 return c_parser_postfix_expression_after_primary (parser, in c_parser_cast_expression()
8084 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN) in c_parser_cast_expression()
8085 && c_token_starts_typename (c_parser_peek_2nd_token (parser))) in c_parser_cast_expression()
8091 parens.consume_open (parser); in c_parser_cast_expression()
8092 type_name = c_parser_type_name (parser, true); in c_parser_cast_expression()
8093 parens.skip_until_found_close (parser); in c_parser_cast_expression()
8105 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_cast_expression()
8106 return c_parser_postfix_expression_after_paren_type (parser, type_name, in c_parser_cast_expression()
8112 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_cast_expression()
8113 expr = c_parser_cast_expression (parser, NULL); in c_parser_cast_expression()
8124 return c_parser_unary_expression (parser); in c_parser_cast_expression()
8162 c_parser_unary_expression (c_parser *parser) in c_parser_unary_expression() argument
8166 location_t op_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8171 switch (c_parser_peek_token (parser)->type) in c_parser_unary_expression()
8174 c_parser_consume_token (parser); in c_parser_unary_expression()
8175 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8176 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8181 c_parser_consume_token (parser); in c_parser_unary_expression()
8182 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8183 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8188 c_parser_consume_token (parser); in c_parser_unary_expression()
8189 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8194 c_parser_consume_token (parser); in c_parser_unary_expression()
8195 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8196 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8210 c_parser_consume_token (parser); in c_parser_unary_expression()
8211 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8212 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8216 c_parser_consume_token (parser); in c_parser_unary_expression()
8217 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8218 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8222 c_parser_consume_token (parser); in c_parser_unary_expression()
8223 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8224 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8228 c_parser_consume_token (parser); in c_parser_unary_expression()
8229 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8230 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8235 c_parser_consume_token (parser); in c_parser_unary_expression()
8236 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_unary_expression()
8239 (c_parser_peek_token (parser)->value, op_loc); in c_parser_unary_expression()
8241 c_parser_peek_token (parser)->get_finish ()); in c_parser_unary_expression()
8242 c_parser_consume_token (parser); in c_parser_unary_expression()
8246 c_parser_error (parser, "expected identifier"); in c_parser_unary_expression()
8251 switch (c_parser_peek_token (parser)->keyword) in c_parser_unary_expression()
8254 return c_parser_sizeof_expression (parser); in c_parser_unary_expression()
8256 return c_parser_alignof_expression (parser); in c_parser_unary_expression()
8258 return c_parser_has_attribute_expression (parser); in c_parser_unary_expression()
8260 c_parser_consume_token (parser); in c_parser_unary_expression()
8262 ret = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8266 c_parser_consume_token (parser); in c_parser_unary_expression()
8267 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8268 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8272 c_parser_consume_token (parser); in c_parser_unary_expression()
8273 exp_loc = c_parser_peek_token (parser)->location; in c_parser_unary_expression()
8274 op = c_parser_cast_expression (parser, NULL); in c_parser_unary_expression()
8279 return c_parser_transaction_expression (parser, in c_parser_unary_expression()
8280 c_parser_peek_token (parser)->keyword); in c_parser_unary_expression()
8282 return c_parser_postfix_expression (parser); in c_parser_unary_expression()
8285 return c_parser_postfix_expression (parser); in c_parser_unary_expression()
8292 c_parser_sizeof_expression (c_parser *parser) in c_parser_sizeof_expression() argument
8297 gcc_assert (c_parser_next_token_is_keyword (parser, RID_SIZEOF)); in c_parser_sizeof_expression()
8302 start = c_parser_peek_token (parser)->location; in c_parser_sizeof_expression()
8304 c_parser_consume_token (parser); in c_parser_sizeof_expression()
8307 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN) in c_parser_sizeof_expression()
8308 && c_token_starts_typename (c_parser_peek_2nd_token (parser))) in c_parser_sizeof_expression()
8314 parens.consume_open (parser); in c_parser_sizeof_expression()
8315 expr_loc = c_parser_peek_token (parser)->location; in c_parser_sizeof_expression()
8316 type_name = c_parser_type_name (parser, true); in c_parser_sizeof_expression()
8317 parens.skip_until_found_close (parser); in c_parser_sizeof_expression()
8318 finish = parser->tokens_buf[0].location; in c_parser_sizeof_expression()
8329 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_sizeof_expression()
8331 expr = c_parser_postfix_expression_after_paren_type (parser, in c_parser_sizeof_expression()
8347 expr_loc = c_parser_peek_token (parser)->location; in c_parser_sizeof_expression()
8348 expr = c_parser_unary_expression (parser); in c_parser_sizeof_expression()
8368 c_parser_alignof_expression (c_parser *parser) in c_parser_alignof_expression() argument
8371 location_t start_loc = c_parser_peek_token (parser)->location; in c_parser_alignof_expression()
8373 tree alignof_spelling = c_parser_peek_token (parser)->value; in c_parser_alignof_expression()
8374 gcc_assert (c_parser_next_token_is_keyword (parser, RID_ALIGNOF)); in c_parser_alignof_expression()
8389 c_parser_consume_token (parser); in c_parser_alignof_expression()
8392 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN) in c_parser_alignof_expression()
8393 && c_token_starts_typename (c_parser_peek_2nd_token (parser))) in c_parser_alignof_expression()
8401 parens.consume_open (parser); in c_parser_alignof_expression()
8402 loc = c_parser_peek_token (parser)->location; in c_parser_alignof_expression()
8403 type_name = c_parser_type_name (parser, true); in c_parser_alignof_expression()
8404 end_loc = c_parser_peek_token (parser)->location; in c_parser_alignof_expression()
8405 parens.skip_until_found_close (parser); in c_parser_alignof_expression()
8416 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_alignof_expression()
8418 expr = c_parser_postfix_expression_after_paren_type (parser, in c_parser_alignof_expression()
8441 expr = c_parser_unary_expression (parser); in c_parser_alignof_expression()
8463 c_parser_has_attribute_expression (c_parser *parser) in c_parser_has_attribute_expression() argument
8465 gcc_assert (c_parser_next_token_is_keyword (parser, in c_parser_has_attribute_expression()
8467 location_t start = c_parser_peek_token (parser)->location; in c_parser_has_attribute_expression()
8468 c_parser_consume_token (parser); in c_parser_has_attribute_expression()
8473 if (!parens.require_open (parser)) in c_parser_has_attribute_expression()
8492 if (c_parser_next_tokens_start_typename (parser, cla_prefer_id)) in c_parser_has_attribute_expression()
8494 struct c_type_name *tname = c_parser_type_name (parser); in c_parser_has_attribute_expression()
8504 struct c_expr cexpr = c_parser_expr_no_commas (parser, NULL); in c_parser_has_attribute_expression()
8525 if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) in c_parser_has_attribute_expression()
8530 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_has_attribute_expression()
8531 c_parser_consume_token (parser); in c_parser_has_attribute_expression()
8537 bool save_translate_strings_p = parser->translate_strings_p; in c_parser_has_attribute_expression()
8539 location_t atloc = c_parser_peek_token (parser)->location; in c_parser_has_attribute_expression()
8542 tree attr = c_parser_gnu_attribute (parser, NULL_TREE, false, false); in c_parser_has_attribute_expression()
8544 parser->translate_strings_p = save_translate_strings_p; in c_parser_has_attribute_expression()
8546 location_t finish = c_parser_peek_token (parser)->location; in c_parser_has_attribute_expression()
8547 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_has_attribute_expression()
8548 c_parser_consume_token (parser); in c_parser_has_attribute_expression()
8551 c_parser_error (parser, "expected identifier"); in c_parser_has_attribute_expression()
8552 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_has_attribute_expression()
8561 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_has_attribute_expression()
8587 c_parser_get_builtin_args (c_parser *parser, const char *bname, in c_parser_get_builtin_args() argument
8592 location_t loc = c_parser_peek_token (parser)->location; in c_parser_get_builtin_args()
8598 if (c_parser_next_token_is_not (parser, CPP_OPEN_PAREN)) in c_parser_get_builtin_args()
8604 c_parser_consume_token (parser); in c_parser_get_builtin_args()
8606 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_get_builtin_args()
8608 *out_close_paren_loc = c_parser_peek_token (parser)->location; in c_parser_get_builtin_args()
8609 c_parser_consume_token (parser); in c_parser_get_builtin_args()
8616 expr = c_parser_expr_no_commas (parser, NULL); in c_parser_get_builtin_args()
8621 while (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_get_builtin_args()
8623 c_parser_consume_token (parser); in c_parser_get_builtin_args()
8624 expr = c_parser_expr_no_commas (parser, NULL); in c_parser_get_builtin_args()
8628 *out_close_paren_loc = c_parser_peek_token (parser)->location; in c_parser_get_builtin_args()
8629 if (!c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) in c_parser_get_builtin_args()
8663 c_parser_generic_selection (c_parser *parser) in c_parser_generic_selection() argument
8678 gcc_assert (c_parser_next_token_is_keyword (parser, RID_GENERIC)); in c_parser_generic_selection()
8679 generic_loc = c_parser_peek_token (parser)->location; in c_parser_generic_selection()
8680 c_parser_consume_token (parser); in c_parser_generic_selection()
8689 if (!parens.require_open (parser)) in c_parser_generic_selection()
8693 selector_loc = c_parser_peek_token (parser)->location; in c_parser_generic_selection()
8694 selector = c_parser_expr_no_commas (parser, NULL); in c_parser_generic_selection()
8700 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_generic_selection()
8717 if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) in c_parser_generic_selection()
8719 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_generic_selection()
8728 c_token *token = c_parser_peek_token (parser); in c_parser_generic_selection()
8733 c_parser_consume_token (parser); in c_parser_generic_selection()
8740 type_name = c_parser_type_name (parser); in c_parser_generic_selection()
8743 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_generic_selection()
8749 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_generic_selection()
8766 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_generic_selection()
8768 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_generic_selection()
8772 assoc.expression = c_parser_expr_no_commas (parser, NULL); in c_parser_generic_selection()
8775 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_generic_selection()
8827 if (c_parser_peek_token (parser)->type != CPP_COMMA) in c_parser_generic_selection()
8829 c_parser_consume_token (parser); in c_parser_generic_selection()
8838 if (!parens.require_close (parser)) in c_parser_generic_selection()
8840 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_generic_selection()
8914 c_parser_predefined_identifier (c_parser *parser) in c_parser_predefined_identifier() argument
8916 location_t loc = c_parser_peek_token (parser)->location; in c_parser_predefined_identifier()
8917 switch (c_parser_peek_token (parser)->keyword) in c_parser_predefined_identifier()
8938 expr.value = fname_decl (loc, c_parser_peek_token (parser)->keyword, in c_parser_predefined_identifier()
8939 c_parser_peek_token (parser)->value); in c_parser_predefined_identifier()
8941 c_parser_consume_token (parser); in c_parser_predefined_identifier()
9010 c_parser_postfix_expression (c_parser *parser) in c_parser_postfix_expression() argument
9014 location_t loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9015 source_range tok_range = c_parser_peek_token (parser)->get_range (); in c_parser_postfix_expression()
9018 switch (c_parser_peek_token (parser)->type) in c_parser_postfix_expression()
9021 expr.value = c_parser_peek_token (parser)->value; in c_parser_postfix_expression()
9023 loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9024 c_parser_consume_token (parser); in c_parser_postfix_expression()
9037 expr.value = c_parser_peek_token (parser)->value; in c_parser_postfix_expression()
9042 c_parser_consume_token (parser); in c_parser_postfix_expression()
9049 expr = c_parser_string_literal (parser, parser->translate_strings_p, in c_parser_postfix_expression()
9055 = objc_build_string_object (c_parser_peek_token (parser)->value); in c_parser_postfix_expression()
9057 c_parser_consume_token (parser); in c_parser_postfix_expression()
9060 switch (c_parser_peek_token (parser)->id_kind) in c_parser_postfix_expression()
9064 tree id = c_parser_peek_token (parser)->value; in c_parser_postfix_expression()
9065 c_parser_consume_token (parser); in c_parser_postfix_expression()
9067 (c_parser_peek_token (parser)->type in c_parser_postfix_expression()
9077 tree class_name = c_parser_peek_token (parser)->value; in c_parser_postfix_expression()
9079 c_parser_consume_token (parser); in c_parser_postfix_expression()
9081 if (!c_parser_require (parser, CPP_DOT, "expected %<.%>")) in c_parser_postfix_expression()
9086 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_postfix_expression()
9088 c_parser_error (parser, "expected identifier"); in c_parser_postfix_expression()
9092 c_token *component_tok = c_parser_peek_token (parser); in c_parser_postfix_expression()
9095 c_parser_consume_token (parser); in c_parser_postfix_expression()
9102 c_parser_error (parser, "expected expression"); in c_parser_postfix_expression()
9110 if (c_parser_peek_2nd_token (parser)->type == CPP_OPEN_BRACE) in c_parser_postfix_expression()
9115 c_parser_consume_token (parser); in c_parser_postfix_expression()
9116 brace_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9117 c_parser_consume_token (parser); in c_parser_postfix_expression()
9125 parser->error = true; in c_parser_postfix_expression()
9126 c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, NULL); in c_parser_postfix_expression()
9127 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_postfix_expression()
9132 c_parser_compound_statement_nostart (parser); in c_parser_postfix_expression()
9133 location_t close_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9134 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_postfix_expression()
9145 location_t loc_open_paren = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9146 c_parser_consume_token (parser); in c_parser_postfix_expression()
9147 expr = c_parser_expression (parser); in c_parser_postfix_expression()
9154 location_t loc_close_paren = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9156 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_postfix_expression()
9161 switch (c_parser_peek_token (parser)->keyword) in c_parser_postfix_expression()
9166 expr = c_parser_predefined_identifier (parser); in c_parser_postfix_expression()
9171 c_parser_consume_token (parser); in c_parser_postfix_expression()
9173 if (!parens.require_open (parser)) in c_parser_postfix_expression()
9178 e1 = c_parser_expr_no_commas (parser, NULL); in c_parser_postfix_expression()
9181 if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) in c_parser_postfix_expression()
9183 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_postfix_expression()
9187 loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9188 t1 = c_parser_type_name (parser); in c_parser_postfix_expression()
9189 location_t end_loc = c_parser_peek_token (parser)->get_finish (); in c_parser_postfix_expression()
9190 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_postfix_expression()
9214 c_parser_consume_token (parser); in c_parser_postfix_expression()
9216 if (!parens.require_open (parser)) in c_parser_postfix_expression()
9221 t1 = c_parser_type_name (parser); in c_parser_postfix_expression()
9223 parser->error = true; in c_parser_postfix_expression()
9224 if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) in c_parser_postfix_expression()
9225 gcc_assert (parser->error); in c_parser_postfix_expression()
9226 if (parser->error) in c_parser_postfix_expression()
9228 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_postfix_expression()
9244 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_postfix_expression()
9246 c_token *comp_tok = c_parser_peek_token (parser); in c_parser_postfix_expression()
9249 c_parser_consume_token (parser); in c_parser_postfix_expression()
9250 while (c_parser_next_token_is (parser, CPP_DOT) in c_parser_postfix_expression()
9251 || c_parser_next_token_is (parser, in c_parser_postfix_expression()
9253 || c_parser_next_token_is (parser, in c_parser_postfix_expression()
9256 if (c_parser_next_token_is (parser, CPP_DEREF)) in c_parser_postfix_expression()
9258 loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9264 else if (c_parser_next_token_is (parser, CPP_DOT)) in c_parser_postfix_expression()
9267 c_parser_consume_token (parser); in c_parser_postfix_expression()
9268 if (c_parser_next_token_is_not (parser, in c_parser_postfix_expression()
9271 c_parser_error (parser, "expected identifier"); in c_parser_postfix_expression()
9274 c_token *comp_tok = c_parser_peek_token (parser); in c_parser_postfix_expression()
9278 c_parser_consume_token (parser); in c_parser_postfix_expression()
9284 loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9285 c_parser_consume_token (parser); in c_parser_postfix_expression()
9286 ce = c_parser_expression (parser); in c_parser_postfix_expression()
9290 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, in c_parser_postfix_expression()
9297 c_parser_error (parser, "expected identifier"); in c_parser_postfix_expression()
9298 location_t end_loc = c_parser_peek_token (parser)->get_finish (); in c_parser_postfix_expression()
9299 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_postfix_expression()
9312 c_parser_consume_token (parser); in c_parser_postfix_expression()
9313 if (!c_parser_get_builtin_args (parser, in c_parser_postfix_expression()
9349 c_parser_consume_token (parser); in c_parser_postfix_expression()
9351 if (!parens.require_open (parser)) in c_parser_postfix_expression()
9356 t1 = c_parser_type_name (parser); in c_parser_postfix_expression()
9362 if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) in c_parser_postfix_expression()
9364 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_postfix_expression()
9368 t2 = c_parser_type_name (parser); in c_parser_postfix_expression()
9374 location_t close_paren_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
9375 parens.skip_until_found_close (parser); in c_parser_postfix_expression()
9398 c_parser_consume_token (parser); in c_parser_postfix_expression()
9399 if (!c_parser_get_builtin_args (parser, in c_parser_postfix_expression()
9924 c_parser_consume_token (parser); in c_parser_postfix_expression()
9925 if (!c_parser_get_builtin_args (parser, in c_parser_postfix_expression()
9966 c_parser_consume_token (parser); in c_parser_postfix_expression()
9967 if (!c_parser_get_builtin_args (parser, in c_parser_postfix_expression()
10030 c_parser_consume_token (parser); in c_parser_postfix_expression()
10031 if (!c_parser_get_builtin_args (parser, in c_parser_postfix_expression()
10064 c_parser_consume_token (parser); in c_parser_postfix_expression()
10066 if (!parens.require_open (parser)) in c_parser_postfix_expression()
10071 e1 = c_parser_expr_no_commas (parser, NULL); in c_parser_postfix_expression()
10073 if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) in c_parser_postfix_expression()
10075 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_postfix_expression()
10079 loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
10080 t1 = c_parser_type_name (parser); in c_parser_postfix_expression()
10081 location_t end_loc = c_parser_peek_token (parser)->get_finish (); in c_parser_postfix_expression()
10082 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_postfix_expression()
10099 c_parser_consume_token (parser); in c_parser_postfix_expression()
10101 if (!parens.require_open (parser)) in c_parser_postfix_expression()
10106 tree sel = c_parser_objc_selector_arg (parser); in c_parser_postfix_expression()
10107 location_t close_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
10108 parens.skip_until_found_close (parser); in c_parser_postfix_expression()
10116 c_parser_consume_token (parser); in c_parser_postfix_expression()
10118 if (!parens.require_open (parser)) in c_parser_postfix_expression()
10123 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_postfix_expression()
10125 c_parser_error (parser, "expected identifier"); in c_parser_postfix_expression()
10126 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_postfix_expression()
10130 tree id = c_parser_peek_token (parser)->value; in c_parser_postfix_expression()
10131 c_parser_consume_token (parser); in c_parser_postfix_expression()
10132 location_t close_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
10133 parens.skip_until_found_close (parser); in c_parser_postfix_expression()
10142 c_parser_consume_token (parser); in c_parser_postfix_expression()
10144 if (!parens.require_open (parser)) in c_parser_postfix_expression()
10149 t1 = c_parser_type_name (parser); in c_parser_postfix_expression()
10153 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_postfix_expression()
10156 location_t close_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
10157 parens.skip_until_found_close (parser); in c_parser_postfix_expression()
10164 expr = c_parser_generic_selection (parser); in c_parser_postfix_expression()
10167 c_parser_error (parser, "expected expression"); in c_parser_postfix_expression()
10176 c_parser_consume_token (parser); in c_parser_postfix_expression()
10177 receiver = c_parser_objc_receiver (parser); in c_parser_postfix_expression()
10178 args = c_parser_objc_message_args (parser); in c_parser_postfix_expression()
10179 location_t close_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression()
10180 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, in c_parser_postfix_expression()
10189 c_parser_error (parser, "expected expression"); in c_parser_postfix_expression()
10195 (parser, EXPR_LOC_OR_LOC (expr.value, loc), expr); in c_parser_postfix_expression()
10209 c_parser_postfix_expression_after_paren_type (c_parser *parser, in c_parser_postfix_expression_after_paren_type() argument
10224 start_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression_after_paren_type()
10230 init = c_parser_braced_init (parser, type, false, NULL); in c_parser_postfix_expression_after_paren_type()
10281 return c_parser_postfix_expression_after_primary (parser, start_loc, expr); in c_parser_postfix_expression_after_paren_type()
10444 c_parser_postfix_expression_after_primary (c_parser *parser, in c_parser_postfix_expression_after_primary() argument
10462 location_t op_loc = c_parser_peek_token (parser)->location; in c_parser_postfix_expression_after_primary()
10463 switch (c_parser_peek_token (parser)->type) in c_parser_postfix_expression_after_primary()
10467 c_parser_consume_token (parser); in c_parser_postfix_expression_after_primary()
10468 idx = c_parser_expression (parser).value; in c_parser_postfix_expression_after_primary()
10469 c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, in c_parser_postfix_expression_after_primary()
10472 finish = parser->tokens_buf[0].location; in c_parser_postfix_expression_after_primary()
10480 c_parser_consume_token (parser); in c_parser_postfix_expression_after_primary()
10487 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_postfix_expression_after_primary()
10490 exprlist = c_parser_expr_list (parser, true, false, &origtypes, in c_parser_postfix_expression_after_primary()
10493 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_postfix_expression_after_primary()
10518 finish = parser->tokens_buf[0].get_finish (); in c_parser_postfix_expression_after_primary()
10539 c_parser_consume_token (parser); in c_parser_postfix_expression_after_primary()
10541 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_postfix_expression_after_primary()
10543 c_token *comp_tok = c_parser_peek_token (parser); in c_parser_postfix_expression_after_primary()
10549 c_parser_error (parser, "expected identifier"); in c_parser_postfix_expression_after_primary()
10556 finish = c_parser_peek_token (parser)->get_finish (); in c_parser_postfix_expression_after_primary()
10557 c_parser_consume_token (parser); in c_parser_postfix_expression_after_primary()
10576 c_parser_consume_token (parser); in c_parser_postfix_expression_after_primary()
10578 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_postfix_expression_after_primary()
10580 c_token *comp_tok = c_parser_peek_token (parser); in c_parser_postfix_expression_after_primary()
10586 c_parser_error (parser, "expected identifier"); in c_parser_postfix_expression_after_primary()
10593 finish = c_parser_peek_token (parser)->get_finish (); in c_parser_postfix_expression_after_primary()
10594 c_parser_consume_token (parser); in c_parser_postfix_expression_after_primary()
10617 finish = c_parser_peek_token (parser)->get_finish (); in c_parser_postfix_expression_after_primary()
10618 c_parser_consume_token (parser); in c_parser_postfix_expression_after_primary()
10629 finish = c_parser_peek_token (parser)->get_finish (); in c_parser_postfix_expression_after_primary()
10630 c_parser_consume_token (parser); in c_parser_postfix_expression_after_primary()
10652 c_parser_expression (c_parser *parser) in c_parser_expression() argument
10654 location_t tloc = c_parser_peek_token (parser)->location; in c_parser_expression()
10656 expr = c_parser_expr_no_commas (parser, NULL); in c_parser_expression()
10657 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_expression()
10659 while (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_expression()
10663 location_t loc = c_parser_peek_token (parser)->location; in c_parser_expression()
10665 c_parser_consume_token (parser); in c_parser_expression()
10666 expr_loc = c_parser_peek_token (parser)->location; in c_parser_expression()
10672 next = c_parser_expr_no_commas (parser, NULL); in c_parser_expression()
10685 c_parser_expression_conv (c_parser *parser) in c_parser_expression_conv() argument
10688 location_t loc = c_parser_peek_token (parser)->location; in c_parser_expression_conv()
10689 expr = c_parser_expression (parser); in c_parser_expression_conv()
10698 c_parser_check_literal_zero (c_parser *parser, unsigned *literal_zero_mask, in c_parser_check_literal_zero() argument
10704 c_token *tok = c_parser_peek_token (parser); in c_parser_check_literal_zero()
10717 && (c_parser_peek_2nd_token (parser)->type == CPP_COMMA in c_parser_check_literal_zero()
10718 || c_parser_peek_2nd_token (parser)->type == CPP_CLOSE_PAREN)) in c_parser_check_literal_zero()
10736 c_parser_expr_list (c_parser *parser, bool convert_p, bool fold_p, in c_parser_expr_list() argument
10754 c_parser_check_literal_zero (parser, literal_zero_mask, 0); in c_parser_expr_list()
10755 expr = c_parser_expr_no_commas (parser, NULL); in c_parser_expr_list()
10771 while (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_expr_list()
10773 c_parser_consume_token (parser); in c_parser_expr_list()
10775 c_parser_check_literal_zero (parser, literal_zero_mask, idx + 1); in c_parser_expr_list()
10776 expr = c_parser_expr_no_commas (parser, NULL); in c_parser_expr_list()
10825 c_parser_objc_class_definition (c_parser *parser, tree attributes) in c_parser_objc_class_definition() argument
10830 if (c_parser_next_token_is_keyword (parser, RID_AT_INTERFACE)) in c_parser_objc_class_definition()
10832 else if (c_parser_next_token_is_keyword (parser, RID_AT_IMPLEMENTATION)) in c_parser_objc_class_definition()
10837 c_parser_consume_token (parser); in c_parser_objc_class_definition()
10838 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_class_definition()
10840 c_parser_error (parser, "expected identifier"); in c_parser_objc_class_definition()
10843 id1 = c_parser_peek_token (parser)->value; in c_parser_objc_class_definition()
10844 c_parser_consume_token (parser); in c_parser_objc_class_definition()
10845 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_objc_class_definition()
10851 parens.consume_open (parser); in c_parser_objc_class_definition()
10852 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_class_definition()
10854 if (iface_p && c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_objc_class_definition()
10861 c_parser_error (parser, "expected identifier or %<)%>"); in c_parser_objc_class_definition()
10862 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_objc_class_definition()
10868 id2 = c_parser_peek_token (parser)->value; in c_parser_objc_class_definition()
10869 c_parser_consume_token (parser); in c_parser_objc_class_definition()
10871 parens.skip_until_found_close (parser); in c_parser_objc_class_definition()
10877 if (c_parser_next_token_is (parser, CPP_LESS)) in c_parser_objc_class_definition()
10878 proto = c_parser_objc_protocol_refs (parser); in c_parser_objc_class_definition()
10880 c_parser_objc_methodprotolist (parser); in c_parser_objc_class_definition()
10881 c_parser_require_keyword (parser, RID_AT_END, "expected %<@end%>"); in c_parser_objc_class_definition()
10885 if (c_parser_next_token_is (parser, CPP_COLON)) in c_parser_objc_class_definition()
10887 c_parser_consume_token (parser); in c_parser_objc_class_definition()
10888 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_class_definition()
10890 c_parser_error (parser, "expected identifier"); in c_parser_objc_class_definition()
10893 superclass = c_parser_peek_token (parser)->value; in c_parser_objc_class_definition()
10894 c_parser_consume_token (parser); in c_parser_objc_class_definition()
10901 if (c_parser_next_token_is (parser, CPP_LESS)) in c_parser_objc_class_definition()
10902 proto = c_parser_objc_protocol_refs (parser); in c_parser_objc_class_definition()
10907 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_objc_class_definition()
10908 c_parser_objc_class_instance_variables (parser); in c_parser_objc_class_definition()
10912 c_parser_objc_methodprotolist (parser); in c_parser_objc_class_definition()
10913 c_parser_require_keyword (parser, RID_AT_END, "expected %<@end%>"); in c_parser_objc_class_definition()
10946 c_parser_objc_class_instance_variables (c_parser *parser) in c_parser_objc_class_instance_variables() argument
10948 gcc_assert (c_parser_next_token_is (parser, CPP_OPEN_BRACE)); in c_parser_objc_class_instance_variables()
10949 c_parser_consume_token (parser); in c_parser_objc_class_instance_variables()
10950 while (c_parser_next_token_is_not (parser, CPP_EOF)) in c_parser_objc_class_instance_variables()
10954 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_objc_class_instance_variables()
10956 pedwarn (c_parser_peek_token (parser)->location, OPT_Wpedantic, in c_parser_objc_class_instance_variables()
10958 c_parser_consume_token (parser); in c_parser_objc_class_instance_variables()
10962 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_objc_class_instance_variables()
10964 c_parser_consume_token (parser); in c_parser_objc_class_instance_variables()
10968 if (c_parser_next_token_is_keyword (parser, RID_AT_PRIVATE)) in c_parser_objc_class_instance_variables()
10970 c_parser_consume_token (parser); in c_parser_objc_class_instance_variables()
10974 else if (c_parser_next_token_is_keyword (parser, RID_AT_PROTECTED)) in c_parser_objc_class_instance_variables()
10976 c_parser_consume_token (parser); in c_parser_objc_class_instance_variables()
10980 else if (c_parser_next_token_is_keyword (parser, RID_AT_PUBLIC)) in c_parser_objc_class_instance_variables()
10982 c_parser_consume_token (parser); in c_parser_objc_class_instance_variables()
10986 else if (c_parser_next_token_is_keyword (parser, RID_AT_PACKAGE)) in c_parser_objc_class_instance_variables()
10988 c_parser_consume_token (parser); in c_parser_objc_class_instance_variables()
10992 else if (c_parser_next_token_is (parser, CPP_PRAGMA)) in c_parser_objc_class_instance_variables()
10994 c_parser_pragma (parser, pragma_external, NULL); in c_parser_objc_class_instance_variables()
10999 decls = c_parser_struct_declaration (parser); in c_parser_objc_class_instance_variables()
11009 c_token *token = c_parser_peek_token (parser); in c_parser_objc_class_instance_variables()
11011 c_parser_consume_token (parser); in c_parser_objc_class_instance_variables()
11014 c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL); in c_parser_objc_class_instance_variables()
11017 parser->error = false; in c_parser_objc_class_instance_variables()
11028 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_objc_class_instance_variables()
11039 c_parser_objc_class_declaration (c_parser *parser) in c_parser_objc_class_declaration() argument
11041 gcc_assert (c_parser_next_token_is_keyword (parser, RID_AT_CLASS)); in c_parser_objc_class_declaration()
11042 c_parser_consume_token (parser); in c_parser_objc_class_declaration()
11048 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_class_declaration()
11050 c_parser_error (parser, "expected identifier"); in c_parser_objc_class_declaration()
11051 c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL); in c_parser_objc_class_declaration()
11052 parser->error = false; in c_parser_objc_class_declaration()
11055 id = c_parser_peek_token (parser)->value; in c_parser_objc_class_declaration()
11057 c_parser_consume_token (parser); in c_parser_objc_class_declaration()
11058 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_objc_class_declaration()
11059 c_parser_consume_token (parser); in c_parser_objc_class_declaration()
11063 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_objc_class_declaration()
11073 c_parser_objc_alias_declaration (c_parser *parser) in c_parser_objc_alias_declaration() argument
11076 gcc_assert (c_parser_next_token_is_keyword (parser, RID_AT_ALIAS)); in c_parser_objc_alias_declaration()
11077 c_parser_consume_token (parser); in c_parser_objc_alias_declaration()
11078 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_alias_declaration()
11080 c_parser_error (parser, "expected identifier"); in c_parser_objc_alias_declaration()
11081 c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL); in c_parser_objc_alias_declaration()
11084 id1 = c_parser_peek_token (parser)->value; in c_parser_objc_alias_declaration()
11085 c_parser_consume_token (parser); in c_parser_objc_alias_declaration()
11086 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_alias_declaration()
11088 c_parser_error (parser, "expected identifier"); in c_parser_objc_alias_declaration()
11089 c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL); in c_parser_objc_alias_declaration()
11092 id2 = c_parser_peek_token (parser)->value; in c_parser_objc_alias_declaration()
11093 c_parser_consume_token (parser); in c_parser_objc_alias_declaration()
11094 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_objc_alias_declaration()
11110 c_parser_objc_protocol_definition (c_parser *parser, tree attributes) in c_parser_objc_protocol_definition() argument
11112 gcc_assert (c_parser_next_token_is_keyword (parser, RID_AT_PROTOCOL)); in c_parser_objc_protocol_definition()
11114 c_parser_consume_token (parser); in c_parser_objc_protocol_definition()
11115 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_protocol_definition()
11117 c_parser_error (parser, "expected identifier"); in c_parser_objc_protocol_definition()
11120 if (c_parser_peek_2nd_token (parser)->type == CPP_COMMA in c_parser_objc_protocol_definition()
11121 || c_parser_peek_2nd_token (parser)->type == CPP_SEMICOLON) in c_parser_objc_protocol_definition()
11128 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_protocol_definition()
11130 c_parser_error (parser, "expected identifier"); in c_parser_objc_protocol_definition()
11133 id = c_parser_peek_token (parser)->value; in c_parser_objc_protocol_definition()
11135 c_parser_consume_token (parser); in c_parser_objc_protocol_definition()
11136 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_objc_protocol_definition()
11137 c_parser_consume_token (parser); in c_parser_objc_protocol_definition()
11141 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_objc_protocol_definition()
11145 tree id = c_parser_peek_token (parser)->value; in c_parser_objc_protocol_definition()
11147 c_parser_consume_token (parser); in c_parser_objc_protocol_definition()
11148 if (c_parser_next_token_is (parser, CPP_LESS)) in c_parser_objc_protocol_definition()
11149 proto = c_parser_objc_protocol_refs (parser); in c_parser_objc_protocol_definition()
11150 parser->objc_pq_context = true; in c_parser_objc_protocol_definition()
11152 c_parser_objc_methodprotolist (parser); in c_parser_objc_protocol_definition()
11153 c_parser_require_keyword (parser, RID_AT_END, "expected %<@end%>"); in c_parser_objc_protocol_definition()
11154 parser->objc_pq_context = false; in c_parser_objc_protocol_definition()
11169 c_parser_objc_method_type (c_parser *parser) in c_parser_objc_method_type() argument
11171 switch (c_parser_peek_token (parser)->type) in c_parser_objc_method_type()
11174 c_parser_consume_token (parser); in c_parser_objc_method_type()
11177 c_parser_consume_token (parser); in c_parser_objc_method_type()
11191 c_parser_objc_method_definition (c_parser *parser) in c_parser_objc_method_definition() argument
11193 bool is_class_method = c_parser_objc_method_type (parser); in c_parser_objc_method_definition()
11195 parser->objc_pq_context = true; in c_parser_objc_method_definition()
11196 decl = c_parser_objc_method_decl (parser, is_class_method, &attributes, in c_parser_objc_method_definition()
11201 if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_objc_method_definition()
11203 c_parser_consume_token (parser); in c_parser_objc_method_definition()
11204 pedwarn (c_parser_peek_token (parser)->location, OPT_Wpedantic, in c_parser_objc_method_definition()
11208 if (!c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_objc_method_definition()
11210 c_parser_error (parser, "expected %<{%>"); in c_parser_objc_method_definition()
11214 parser->objc_pq_context = false; in c_parser_objc_method_definition()
11217 add_stmt (c_parser_compound_statement (parser)); in c_parser_objc_method_definition()
11227 c_parser_compound_statement (parser); in c_parser_objc_method_definition()
11248 c_parser_objc_methodprotolist (c_parser *parser) in c_parser_objc_methodprotolist() argument
11253 switch (c_parser_peek_token (parser)->type) in c_parser_objc_methodprotolist()
11256 pedwarn (c_parser_peek_token (parser)->location, OPT_Wpedantic, in c_parser_objc_methodprotolist()
11258 c_parser_consume_token (parser); in c_parser_objc_methodprotolist()
11262 c_parser_objc_methodproto (parser); in c_parser_objc_methodprotolist()
11265 c_parser_pragma (parser, pragma_external, NULL); in c_parser_objc_methodprotolist()
11270 if (c_parser_next_token_is_keyword (parser, RID_AT_END)) in c_parser_objc_methodprotolist()
11272 else if (c_parser_next_token_is_keyword (parser, RID_AT_PROPERTY)) in c_parser_objc_methodprotolist()
11273 c_parser_objc_at_property_declaration (parser); in c_parser_objc_methodprotolist()
11274 else if (c_parser_next_token_is_keyword (parser, RID_AT_OPTIONAL)) in c_parser_objc_methodprotolist()
11277 c_parser_consume_token (parser); in c_parser_objc_methodprotolist()
11279 else if (c_parser_next_token_is_keyword (parser, RID_AT_REQUIRED)) in c_parser_objc_methodprotolist()
11282 c_parser_consume_token (parser); in c_parser_objc_methodprotolist()
11285 c_parser_declaration_or_fndef (parser, false, false, true, in c_parser_objc_methodprotolist()
11299 c_parser_objc_methodproto (c_parser *parser) in c_parser_objc_methodproto() argument
11301 bool is_class_method = c_parser_objc_method_type (parser); in c_parser_objc_methodproto()
11305 parser->objc_pq_context = true; in c_parser_objc_methodproto()
11306 decl = c_parser_objc_method_decl (parser, is_class_method, &attributes, in c_parser_objc_methodproto()
11309 parser->objc_pq_context = false; in c_parser_objc_methodproto()
11313 if (!c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_objc_methodproto()
11315 c_parser_error (parser, "expected %<;%>"); in c_parser_objc_methodproto()
11322 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_objc_methodproto()
11331 c_parser_objc_maybe_method_attributes (c_parser* parser, tree* attributes) in c_parser_objc_maybe_method_attributes() argument
11336 c_parser_error (parser, in c_parser_objc_maybe_method_attributes()
11342 if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_objc_maybe_method_attributes()
11343 *attributes = c_parser_gnu_attributes (parser); in c_parser_objc_maybe_method_attributes()
11351 if (c_parser_next_token_is (parser, CPP_SEMICOLON) in c_parser_objc_maybe_method_attributes()
11352 || c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_objc_maybe_method_attributes()
11356 c_parser_error (parser, in c_parser_objc_maybe_method_attributes()
11393 c_parser_objc_method_decl (c_parser *parser, bool is_class_method, in c_parser_objc_method_decl() argument
11403 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_objc_method_decl()
11406 parens.consume_open (parser); in c_parser_objc_method_decl()
11407 type = c_parser_objc_type_name (parser); in c_parser_objc_method_decl()
11408 parens.skip_until_found_close (parser); in c_parser_objc_method_decl()
11410 sel = c_parser_objc_selector (parser); in c_parser_objc_method_decl()
11414 if (!sel || c_parser_next_token_is (parser, CPP_COLON)) in c_parser_objc_method_decl()
11422 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_objc_method_decl()
11424 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_objc_method_decl()
11426 c_parser_consume_token (parser); in c_parser_objc_method_decl()
11427 atype = c_parser_objc_type_name (parser); in c_parser_objc_method_decl()
11428 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_objc_method_decl()
11432 if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_objc_method_decl()
11433 param_attr = c_parser_gnu_attributes (parser); in c_parser_objc_method_decl()
11434 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_method_decl()
11436 c_parser_error (parser, "expected identifier"); in c_parser_objc_method_decl()
11439 id = c_parser_peek_token (parser)->value; in c_parser_objc_method_decl()
11440 c_parser_consume_token (parser); in c_parser_objc_method_decl()
11443 tsel = c_parser_objc_selector (parser); in c_parser_objc_method_decl()
11444 if (!tsel && c_parser_next_token_is_not (parser, CPP_COLON)) in c_parser_objc_method_decl()
11448 attr_err |= c_parser_objc_maybe_method_attributes (parser, attributes) ; in c_parser_objc_method_decl()
11454 while (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_objc_method_decl()
11457 c_parser_consume_token (parser); in c_parser_objc_method_decl()
11458 if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) in c_parser_objc_method_decl()
11461 c_parser_consume_token (parser); in c_parser_objc_method_decl()
11463 (parser, attributes) ; in c_parser_objc_method_decl()
11466 parm = c_parser_parameter_declaration (parser, NULL_TREE, false); in c_parser_objc_method_decl()
11475 attr_err |= c_parser_objc_maybe_method_attributes (parser, attributes) ; in c_parser_objc_method_decl()
11479 c_parser_error (parser, "objective-c method declaration is expected"); in c_parser_objc_method_decl()
11504 c_parser_objc_type_name (c_parser *parser) in c_parser_objc_type_name() argument
11511 c_token *token = c_parser_peek_token (parser); in c_parser_objc_type_name()
11521 c_parser_consume_token (parser); in c_parser_objc_type_name()
11526 if (c_parser_next_tokens_start_typename (parser, cla_prefer_type)) in c_parser_objc_type_name()
11527 type_name = c_parser_type_name (parser); in c_parser_objc_type_name()
11548 c_parser_objc_protocol_refs (c_parser *parser) in c_parser_objc_protocol_refs() argument
11551 gcc_assert (c_parser_next_token_is (parser, CPP_LESS)); in c_parser_objc_protocol_refs()
11552 c_parser_consume_token (parser); in c_parser_objc_protocol_refs()
11558 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_protocol_refs()
11560 c_parser_error (parser, "expected identifier"); in c_parser_objc_protocol_refs()
11563 id = c_parser_peek_token (parser)->value; in c_parser_objc_protocol_refs()
11565 c_parser_consume_token (parser); in c_parser_objc_protocol_refs()
11566 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_objc_protocol_refs()
11567 c_parser_consume_token (parser); in c_parser_objc_protocol_refs()
11571 c_parser_require (parser, CPP_GREATER, "expected %<>%>"); in c_parser_objc_protocol_refs()
11595 c_parser_objc_try_catch_finally_statement (c_parser *parser) in c_parser_objc_try_catch_finally_statement() argument
11600 gcc_assert (c_parser_next_token_is_keyword (parser, RID_AT_TRY)); in c_parser_objc_try_catch_finally_statement()
11601 c_parser_consume_token (parser); in c_parser_objc_try_catch_finally_statement()
11602 location = c_parser_peek_token (parser)->location; in c_parser_objc_try_catch_finally_statement()
11604 stmt = c_parser_compound_statement (parser); in c_parser_objc_try_catch_finally_statement()
11607 while (c_parser_next_token_is_keyword (parser, RID_AT_CATCH)) in c_parser_objc_try_catch_finally_statement()
11613 c_parser_consume_token (parser); in c_parser_objc_try_catch_finally_statement()
11615 if (!parens.require_open (parser)) in c_parser_objc_try_catch_finally_statement()
11617 if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) in c_parser_objc_try_catch_finally_statement()
11624 c_parser_consume_token (parser); in c_parser_objc_try_catch_finally_statement()
11631 parm = c_parser_parameter_declaration (parser, NULL_TREE, false); in c_parser_objc_try_catch_finally_statement()
11638 parens.require_close (parser); in c_parser_objc_try_catch_finally_statement()
11649 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_objc_try_catch_finally_statement()
11650 c_parser_consume_token (parser); in c_parser_objc_try_catch_finally_statement()
11658 if (c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) in c_parser_objc_try_catch_finally_statement()
11659 c_parser_compound_statement_nostart (parser); in c_parser_objc_try_catch_finally_statement()
11662 if (c_parser_next_token_is_keyword (parser, RID_AT_FINALLY)) in c_parser_objc_try_catch_finally_statement()
11664 c_parser_consume_token (parser); in c_parser_objc_try_catch_finally_statement()
11665 location = c_parser_peek_token (parser)->location; in c_parser_objc_try_catch_finally_statement()
11666 stmt = c_parser_compound_statement (parser); in c_parser_objc_try_catch_finally_statement()
11679 c_parser_objc_synchronized_statement (c_parser *parser) in c_parser_objc_synchronized_statement() argument
11683 gcc_assert (c_parser_next_token_is_keyword (parser, RID_AT_SYNCHRONIZED)); in c_parser_objc_synchronized_statement()
11684 c_parser_consume_token (parser); in c_parser_objc_synchronized_statement()
11685 loc = c_parser_peek_token (parser)->location; in c_parser_objc_synchronized_statement()
11688 if (parens.require_open (parser)) in c_parser_objc_synchronized_statement()
11690 struct c_expr ce = c_parser_expression (parser); in c_parser_objc_synchronized_statement()
11694 parens.skip_until_found_close (parser); in c_parser_objc_synchronized_statement()
11698 stmt = c_parser_compound_statement (parser); in c_parser_objc_synchronized_statement()
11718 c_parser_objc_selector (c_parser *parser) in c_parser_objc_selector() argument
11720 c_token *token = c_parser_peek_token (parser); in c_parser_objc_selector()
11724 c_parser_consume_token (parser); in c_parser_objc_selector()
11777 c_parser_consume_token (parser); in c_parser_objc_selector()
11800 c_parser_objc_selector_arg (c_parser *parser) in c_parser_objc_selector_arg() argument
11802 tree sel = c_parser_objc_selector (parser); in c_parser_objc_selector_arg()
11805 && c_parser_next_token_is_not (parser, CPP_COLON) in c_parser_objc_selector_arg()
11806 && c_parser_next_token_is_not (parser, CPP_SCOPE)) in c_parser_objc_selector_arg()
11810 if (c_parser_next_token_is (parser, CPP_SCOPE)) in c_parser_objc_selector_arg()
11812 c_parser_consume_token (parser); in c_parser_objc_selector_arg()
11818 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_objc_selector_arg()
11822 sel = c_parser_objc_selector (parser); in c_parser_objc_selector_arg()
11824 && c_parser_next_token_is_not (parser, CPP_COLON) in c_parser_objc_selector_arg()
11825 && c_parser_next_token_is_not (parser, CPP_SCOPE)) in c_parser_objc_selector_arg()
11840 c_parser_objc_receiver (c_parser *parser) in c_parser_objc_receiver() argument
11842 location_t loc = c_parser_peek_token (parser)->location; in c_parser_objc_receiver()
11844 if (c_parser_peek_token (parser)->type == CPP_NAME in c_parser_objc_receiver()
11845 && (c_parser_peek_token (parser)->id_kind == C_ID_TYPENAME in c_parser_objc_receiver()
11846 || c_parser_peek_token (parser)->id_kind == C_ID_CLASSNAME)) in c_parser_objc_receiver()
11848 tree id = c_parser_peek_token (parser)->value; in c_parser_objc_receiver()
11849 c_parser_consume_token (parser); in c_parser_objc_receiver()
11852 struct c_expr ce = c_parser_expression (parser); in c_parser_objc_receiver()
11873 c_parser_objc_message_args (c_parser *parser) in c_parser_objc_message_args() argument
11875 tree sel = c_parser_objc_selector (parser); in c_parser_objc_message_args()
11877 if (sel && c_parser_next_token_is_not (parser, CPP_COLON)) in c_parser_objc_message_args()
11882 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_objc_message_args()
11884 keywordexpr = c_parser_objc_keywordexpr (parser); in c_parser_objc_message_args()
11886 sel = c_parser_objc_selector (parser); in c_parser_objc_message_args()
11887 if (!sel && c_parser_next_token_is_not (parser, CPP_COLON)) in c_parser_objc_message_args()
11900 c_parser_objc_keywordexpr (c_parser *parser) in c_parser_objc_keywordexpr() argument
11903 vec<tree, va_gc> *expr_list = c_parser_expr_list (parser, true, true, in c_parser_objc_keywordexpr()
11923 c_parser_objc_diagnose_bad_element_prefix (c_parser *parser, in c_parser_objc_diagnose_bad_element_prefix() argument
11929 c_parser_error (parser, in c_parser_objc_diagnose_bad_element_prefix()
11931 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_objc_diagnose_bad_element_prefix()
11968 c_parser_objc_at_property_declaration (c_parser *parser) in c_parser_objc_at_property_declaration() argument
11970 gcc_assert (c_parser_next_token_is_keyword (parser, RID_AT_PROPERTY)); in c_parser_objc_at_property_declaration()
11971 location_t loc = c_parser_peek_token (parser)->location; in c_parser_objc_at_property_declaration()
11972 c_parser_consume_token (parser); /* Eat '@property'. */ in c_parser_objc_at_property_declaration()
11980 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_objc_at_property_declaration()
11984 location_t attr_start = c_parser_peek_token (parser)->location; in c_parser_objc_at_property_declaration()
11986 parens.consume_open (parser); in c_parser_objc_at_property_declaration()
11989 parser->objc_property_attr_context = true; in c_parser_objc_at_property_declaration()
11992 location_t attr_end = c_parser_peek_token (parser)->location; in c_parser_objc_at_property_declaration()
11994 if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_objc_at_property_declaration()
12003 c_token *token = c_parser_peek_token (parser); in c_parser_objc_at_property_declaration()
12015 c_parser_consume_token (parser); in c_parser_objc_at_property_declaration()
12037 c_parser_consume_token (parser); in c_parser_objc_at_property_declaration()
12060 if (c_parser_next_token_is_not (parser, CPP_EQ)) in c_parser_objc_at_property_declaration()
12068 token = c_parser_peek_token (parser); in c_parser_objc_at_property_declaration()
12070 c_parser_consume_token (parser); /* eat the = */ in c_parser_objc_at_property_declaration()
12071 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_at_property_declaration()
12080 token = c_parser_peek_token (parser); in c_parser_objc_at_property_declaration()
12083 c_parser_consume_token (parser); in c_parser_objc_at_property_declaration()
12086 if (c_parser_next_token_is_not (parser, CPP_COLON)) in c_parser_objc_at_property_declaration()
12097 (parser)->location); in c_parser_objc_at_property_declaration()
12098 c_parser_consume_token (parser); in c_parser_objc_at_property_declaration()
12118 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_objc_at_property_declaration()
12119 c_parser_consume_token (parser); in c_parser_objc_at_property_declaration()
12123 parser->objc_property_attr_context = false; in c_parser_objc_at_property_declaration()
12125 if (syntax_error && c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN)) in c_parser_objc_at_property_declaration()
12131 syntax_error = false, parens.skip_until_found_close (parser); in c_parser_objc_at_property_declaration()
12137 tree properties = c_parser_struct_declaration (parser); in c_parser_objc_at_property_declaration()
12140 c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL); in c_parser_objc_at_property_declaration()
12144 c_parser_error (parser, "expected identifier"); in c_parser_objc_at_property_declaration()
12154 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_objc_at_property_declaration()
12160 parser->error = false; in c_parser_objc_at_property_declaration()
12184 c_parser_objc_at_synthesize_declaration (c_parser *parser) in c_parser_objc_at_synthesize_declaration() argument
12188 gcc_assert (c_parser_next_token_is_keyword (parser, RID_AT_SYNTHESIZE)); in c_parser_objc_at_synthesize_declaration()
12189 loc = c_parser_peek_token (parser)->location; in c_parser_objc_at_synthesize_declaration()
12191 c_parser_consume_token (parser); in c_parser_objc_at_synthesize_declaration()
12195 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_at_synthesize_declaration()
12197 c_parser_error (parser, "expected identifier"); in c_parser_objc_at_synthesize_declaration()
12198 c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL); in c_parser_objc_at_synthesize_declaration()
12203 parser->error = false; in c_parser_objc_at_synthesize_declaration()
12206 property = c_parser_peek_token (parser)->value; in c_parser_objc_at_synthesize_declaration()
12207 c_parser_consume_token (parser); in c_parser_objc_at_synthesize_declaration()
12208 if (c_parser_next_token_is (parser, CPP_EQ)) in c_parser_objc_at_synthesize_declaration()
12210 c_parser_consume_token (parser); in c_parser_objc_at_synthesize_declaration()
12211 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_at_synthesize_declaration()
12213 c_parser_error (parser, "expected identifier"); in c_parser_objc_at_synthesize_declaration()
12214 c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL); in c_parser_objc_at_synthesize_declaration()
12215 parser->error = false; in c_parser_objc_at_synthesize_declaration()
12218 ivar = c_parser_peek_token (parser)->value; in c_parser_objc_at_synthesize_declaration()
12219 c_parser_consume_token (parser); in c_parser_objc_at_synthesize_declaration()
12224 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_objc_at_synthesize_declaration()
12225 c_parser_consume_token (parser); in c_parser_objc_at_synthesize_declaration()
12229 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_objc_at_synthesize_declaration()
12246 c_parser_objc_at_dynamic_declaration (c_parser *parser) in c_parser_objc_at_dynamic_declaration() argument
12250 gcc_assert (c_parser_next_token_is_keyword (parser, RID_AT_DYNAMIC)); in c_parser_objc_at_dynamic_declaration()
12251 loc = c_parser_peek_token (parser)->location; in c_parser_objc_at_dynamic_declaration()
12253 c_parser_consume_token (parser); in c_parser_objc_at_dynamic_declaration()
12257 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_objc_at_dynamic_declaration()
12259 c_parser_error (parser, "expected identifier"); in c_parser_objc_at_dynamic_declaration()
12260 c_parser_skip_until_found (parser, CPP_SEMICOLON, NULL); in c_parser_objc_at_dynamic_declaration()
12261 parser->error = false; in c_parser_objc_at_dynamic_declaration()
12264 property = c_parser_peek_token (parser)->value; in c_parser_objc_at_dynamic_declaration()
12266 c_parser_consume_token (parser); in c_parser_objc_at_dynamic_declaration()
12267 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_objc_at_dynamic_declaration()
12268 c_parser_consume_token (parser); in c_parser_objc_at_dynamic_declaration()
12272 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_objc_at_dynamic_declaration()
12280 c_parse_pragma_ivdep (c_parser *parser) in c_parse_pragma_ivdep() argument
12282 c_parser_consume_pragma (parser); in c_parse_pragma_ivdep()
12283 c_parser_skip_to_pragma_eol (parser); in c_parse_pragma_ivdep()
12290 c_parser_pragma_unroll (c_parser *parser) in c_parser_pragma_unroll() argument
12293 c_parser_consume_pragma (parser); in c_parser_pragma_unroll()
12294 location_t location = c_parser_peek_token (parser)->location; in c_parser_pragma_unroll()
12295 tree expr = c_parser_expr_no_commas (parser, NULL).value; in c_parser_pragma_unroll()
12316 c_parser_skip_to_pragma_eol (parser); in c_parser_pragma_unroll()
12326 c_parser_pragma (c_parser *parser, enum pragma_context context, bool *if_p) in c_parser_pragma() argument
12331 input_location = c_parser_peek_token (parser)->location; in c_parser_pragma()
12332 id = c_parser_peek_token (parser)->pragma_kind; in c_parser_pragma()
12338 c_parser_oacc_declare (parser); in c_parser_pragma()
12348 error_at (c_parser_peek_token (parser)->location, in c_parser_pragma()
12351 c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL); in c_parser_pragma()
12356 c_parser_oacc_enter_exit_data (parser, true); in c_parser_pragma()
12365 c_parser_oacc_enter_exit_data (parser, false); in c_parser_pragma()
12371 error_at (c_parser_peek_token (parser)->location, in c_parser_pragma()
12373 c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL); in c_parser_pragma()
12376 c_parser_oacc_routine (parser, context); in c_parser_pragma()
12385 c_parser_oacc_update (parser); in c_parser_pragma()
12394 c_parser_omp_barrier (parser); in c_parser_pragma()
12403 c_parser_omp_depobj (parser); in c_parser_pragma()
12412 c_parser_omp_flush (parser); in c_parser_pragma()
12421 c_parser_omp_taskwait (parser); in c_parser_pragma()
12430 c_parser_omp_taskyield (parser); in c_parser_pragma()
12439 c_parser_omp_cancel (parser); in c_parser_pragma()
12443 c_parser_omp_cancellation_point (parser, context); in c_parser_pragma()
12447 c_parser_omp_threadprivate (parser); in c_parser_pragma()
12451 return c_parser_omp_target (parser, context, if_p); in c_parser_pragma()
12454 c_parser_omp_end_declare_target (parser); in c_parser_pragma()
12458 error_at (c_parser_peek_token (parser)->location, in c_parser_pragma()
12461 c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL); in c_parser_pragma()
12465 error_at (c_parser_peek_token (parser)->location, in c_parser_pragma()
12468 c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL); in c_parser_pragma()
12472 c_parser_omp_declare (parser, context); in c_parser_pragma()
12478 error_at (c_parser_peek_token (parser)->location, in c_parser_pragma()
12480 c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL); in c_parser_pragma()
12483 c_parser_omp_requires (parser); in c_parser_pragma()
12487 return c_parser_omp_ordered (parser, context, if_p); in c_parser_pragma()
12491 const bool ivdep = c_parse_pragma_ivdep (parser); in c_parser_pragma()
12493 if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_UNROLL) in c_parser_pragma()
12494 unroll = c_parser_pragma_unroll (parser); in c_parser_pragma()
12497 if (!c_parser_next_token_is_keyword (parser, RID_FOR) in c_parser_pragma()
12498 && !c_parser_next_token_is_keyword (parser, RID_WHILE) in c_parser_pragma()
12499 && !c_parser_next_token_is_keyword (parser, RID_DO)) in c_parser_pragma()
12501 c_parser_error (parser, "for, while or do statement expected"); in c_parser_pragma()
12504 if (c_parser_next_token_is_keyword (parser, RID_FOR)) in c_parser_pragma()
12505 c_parser_for_statement (parser, ivdep, unroll, if_p); in c_parser_pragma()
12506 else if (c_parser_next_token_is_keyword (parser, RID_WHILE)) in c_parser_pragma()
12507 c_parser_while_statement (parser, ivdep, unroll, if_p); in c_parser_pragma()
12509 c_parser_do_statement (parser, ivdep, unroll); in c_parser_pragma()
12515 unsigned short unroll = c_parser_pragma_unroll (parser); in c_parser_pragma()
12517 if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_IVDEP) in c_parser_pragma()
12518 ivdep = c_parse_pragma_ivdep (parser); in c_parser_pragma()
12521 if (!c_parser_next_token_is_keyword (parser, RID_FOR) in c_parser_pragma()
12522 && !c_parser_next_token_is_keyword (parser, RID_WHILE) in c_parser_pragma()
12523 && !c_parser_next_token_is_keyword (parser, RID_DO)) in c_parser_pragma()
12525 c_parser_error (parser, "for, while or do statement expected"); in c_parser_pragma()
12528 if (c_parser_next_token_is_keyword (parser, RID_FOR)) in c_parser_pragma()
12529 c_parser_for_statement (parser, ivdep, unroll, if_p); in c_parser_pragma()
12530 else if (c_parser_next_token_is_keyword (parser, RID_WHILE)) in c_parser_pragma()
12531 c_parser_while_statement (parser, ivdep, unroll, if_p); in c_parser_pragma()
12533 c_parser_do_statement (parser, ivdep, unroll); in c_parser_pragma()
12538 c_parser_error (parser, "%<#pragma GCC pch_preprocess%> must be first"); in c_parser_pragma()
12539 c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL); in c_parser_pragma()
12556 c_parser_error (parser, "expected declaration specifiers"); in c_parser_pragma()
12557 c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL); in c_parser_pragma()
12560 c_parser_omp_construct (parser, if_p); in c_parser_pragma()
12566 c_parser_consume_pragma (parser); in c_parser_pragma()
12572 parser->error = true; in c_parser_pragma()
12573 c_parser_skip_to_pragma_eol (parser); in c_parser_pragma()
12605 c_parser_pragma_pch_preprocess (c_parser *parser) in c_parser_pragma_pch_preprocess() argument
12609 parser->lex_joined_string = true; in c_parser_pragma_pch_preprocess()
12610 c_parser_consume_pragma (parser); in c_parser_pragma_pch_preprocess()
12611 if (c_parser_next_token_is (parser, CPP_STRING)) in c_parser_pragma_pch_preprocess()
12613 name = c_parser_peek_token (parser)->value; in c_parser_pragma_pch_preprocess()
12614 c_parser_consume_token (parser); in c_parser_pragma_pch_preprocess()
12617 c_parser_error (parser, "expected string literal"); in c_parser_pragma_pch_preprocess()
12618 c_parser_skip_to_pragma_eol (parser); in c_parser_pragma_pch_preprocess()
12619 parser->lex_joined_string = false; in c_parser_pragma_pch_preprocess()
12633 c_parser_omp_clause_name (c_parser *parser) in c_parser_omp_clause_name() argument
12637 if (c_parser_next_token_is_keyword (parser, RID_AUTO)) in c_parser_omp_clause_name()
12639 else if (c_parser_next_token_is_keyword (parser, RID_IF)) in c_parser_omp_clause_name()
12641 else if (c_parser_next_token_is_keyword (parser, RID_DEFAULT)) in c_parser_omp_clause_name()
12643 else if (c_parser_next_token_is_keyword (parser, RID_FOR)) in c_parser_omp_clause_name()
12645 else if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_name()
12647 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_name()
12863 c_parser_consume_token (parser); in c_parser_omp_clause_name()
12882 c_parser_oacc_wait_list (c_parser *parser, location_t clause_loc, tree list) in c_parser_oacc_wait_list() argument
12888 if (!parens.require_open (parser)) in c_parser_oacc_wait_list()
12891 args = c_parser_expr_list (parser, false, true, NULL, NULL, NULL, NULL); in c_parser_oacc_wait_list()
12902 c_parser_error (parser, "expression must be integral"); in c_parser_oacc_wait_list()
12917 parens.require_close (parser); in c_parser_oacc_wait_list()
12937 c_parser_omp_variable_list (c_parser *parser,
12951 if (c_parser_next_token_is_not (parser, CPP_NAME)
12952 || c_parser_peek_token (parser)->id_kind != C_ID_ID)
12954 struct c_expr expr = c_parser_expr_no_commas (parser, NULL);
12963 if (c_parser_next_token_is_not (parser, CPP_COMMA))
12966 c_parser_consume_token (parser);
12975 c_token *token = c_parser_peek_token (parser);
12999 c_parser_consume_token (parser);
13012 tokens_avail = parser->tokens_avail;
13013 gcc_assert (parser->tokens == &parser->tokens_buf[0]);
13014 parser->tokens = tokens.address ();
13015 parser->tokens_avail = tokens.length ();
13020 if (c_parser_next_token_is (parser, CPP_NAME)
13021 && c_parser_peek_token (parser)->id_kind == C_ID_ID)
13023 t = lookup_name (c_parser_peek_token (parser)->value);
13027 undeclared_variable (c_parser_peek_token (parser)->location,
13028 c_parser_peek_token (parser)->value);
13032 c_parser_consume_token (parser);
13034 else if (c_parser_next_token_is (parser, CPP_KEYWORD)
13035 && (c_parser_peek_token (parser)->keyword == RID_FUNCTION_NAME
13036 || (c_parser_peek_token (parser)->keyword
13038 || (c_parser_peek_token (parser)->keyword
13040 t = c_parser_predefined_identifier (parser).value;
13044 c_parser_error (parser, "expected identifier");
13057 if (c_parser_peek_token (parser)->type != CPP_OPEN_SQUARE)
13059 c_parser_error (parser, "expected %<[%>");
13067 while (c_parser_next_token_is (parser, CPP_DOT)
13069 && c_parser_next_token_is (parser, CPP_DEREF)))
13071 location_t op_loc = c_parser_peek_token (parser)->location;
13072 if (c_parser_next_token_is (parser, CPP_DEREF))
13074 c_parser_consume_token (parser);
13075 if (!c_parser_next_token_is (parser, CPP_NAME))
13077 c_parser_error (parser, "expected identifier");
13082 c_token *comp_tok = c_parser_peek_token (parser);
13085 c_parser_consume_token (parser);
13093 while (c_parser_next_token_is (parser, CPP_OPEN_SQUARE))
13097 c_parser_consume_token (parser);
13098 if (!c_parser_next_token_is (parser, CPP_COLON))
13101 = c_parser_peek_token (parser)->location;
13102 c_expr expr = c_parser_expression (parser);
13107 if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE))
13112 if (!c_parser_require (parser, CPP_COLON,
13119 if (!c_parser_next_token_is (parser, CPP_CLOSE_SQUARE))
13122 = c_parser_peek_token (parser)->location;
13123 c_expr expr = c_parser_expression (parser);
13130 if (!c_parser_require (parser, CPP_CLOSE_SQUARE,
13141 && parser->tokens_avail != 2)
13145 error_at (c_parser_peek_token (parser)->location,
13151 parser->tokens = tokens.address ();
13152 parser->tokens_avail = tokens.length ();
13154 t = c_parser_expr_no_commas (parser, NULL).value;
13155 if (t != error_mark_node && parser->tokens_avail != 2)
13157 error_at (c_parser_peek_token (parser)->location,
13181 parser->tokens = &parser->tokens_buf[0];
13182 parser->tokens_avail = tokens_avail;
13184 if (c_parser_next_token_is_not (parser, CPP_COMMA))
13187 c_parser_consume_token (parser);
13199 c_parser_omp_var_list_parens (c_parser *parser, enum omp_clause_code kind,
13203 location_t loc = c_parser_peek_token (parser)->location;
13206 if (parens.require_open (parser))
13208 list = c_parser_omp_variable_list (parser, loc, kind, list, allow_deref);
13209 parens.skip_until_found_close (parser);
13228 c_parser_oacc_data_clause (c_parser *parser, pragma_omp_clause c_kind, in c_parser_oacc_data_clause() argument
13277 nl = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_MAP, list, true); in c_parser_oacc_data_clause()
13289 c_parser_oacc_data_clause_deviceptr (c_parser *parser, tree list) in c_parser_oacc_data_clause_deviceptr() argument
13291 location_t loc = c_parser_peek_token (parser)->location; in c_parser_oacc_data_clause_deviceptr()
13297 vars = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ERROR, NULL); in c_parser_oacc_data_clause_deviceptr()
13329 c_parser_omp_clause_collapse (c_parser *parser, tree list) in c_parser_omp_clause_collapse() argument
13338 loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_collapse()
13340 if (parens.require_open (parser)) in c_parser_omp_clause_collapse()
13342 num = c_parser_expr_no_commas (parser, NULL).value; in c_parser_omp_clause_collapse()
13343 parens.skip_until_found_close (parser); in c_parser_omp_clause_collapse()
13368 c_parser_omp_clause_copyin (c_parser *parser, tree list) in c_parser_omp_clause_copyin() argument
13370 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_COPYIN, list); in c_parser_omp_clause_copyin()
13377 c_parser_omp_clause_copyprivate (c_parser *parser, tree list) in c_parser_omp_clause_copyprivate() argument
13379 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_COPYPRIVATE, list); in c_parser_omp_clause_copyprivate()
13389 c_parser_omp_clause_default (c_parser *parser, tree list, bool is_oacc) in c_parser_omp_clause_default() argument
13392 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_default()
13396 if (!parens.require_open (parser)) in c_parser_omp_clause_default()
13398 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_default()
13400 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_default()
13426 c_parser_consume_token (parser); in c_parser_omp_clause_default()
13432 c_parser_error (parser, "expected %<none%> or %<present%>"); in c_parser_omp_clause_default()
13434 c_parser_error (parser, "expected %<none%> or %<shared%>"); in c_parser_omp_clause_default()
13436 parens.skip_until_found_close (parser); in c_parser_omp_clause_default()
13453 c_parser_omp_clause_firstprivate (c_parser *parser, tree list) in c_parser_omp_clause_firstprivate() argument
13455 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_FIRSTPRIVATE, list); in c_parser_omp_clause_firstprivate()
13462 c_parser_omp_clause_final (c_parser *parser, tree list) in c_parser_omp_clause_final() argument
13464 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_final()
13465 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_omp_clause_final()
13469 if (!parens.require_open (parser)) in c_parser_omp_clause_final()
13473 location_t eloc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_final()
13474 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_final()
13478 parens.skip_until_found_close (parser); in c_parser_omp_clause_final()
13489 c_parser_error (parser, "expected %<(%>"); in c_parser_omp_clause_final()
13509 c_parser_omp_clause_if (c_parser *parser, tree list, bool is_omp) in c_parser_omp_clause_if() argument
13511 location_t location = c_parser_peek_token (parser)->location; in c_parser_omp_clause_if()
13515 if (!parens.require_open (parser)) in c_parser_omp_clause_if()
13518 if (is_omp && c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_if()
13520 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_if()
13535 if (c_parser_peek_2nd_token (parser)->type == CPP_NAME) in c_parser_omp_clause_if()
13537 p = IDENTIFIER_POINTER (c_parser_peek_2nd_token (parser)->value); in c_parser_omp_clause_if()
13549 c_parser_consume_token (parser); in c_parser_omp_clause_if()
13553 location_t loc = c_parser_peek_2nd_token (parser)->location; in c_parser_omp_clause_if()
13561 if (c_parser_peek_2nd_token (parser)->type == CPP_NAME) in c_parser_omp_clause_if()
13564 (c_parser_peek_2nd_token (parser)->value); in c_parser_omp_clause_if()
13569 c_parser_consume_token (parser); in c_parser_omp_clause_if()
13573 = c_parser_peek_2nd_token (parser)->location; in c_parser_omp_clause_if()
13582 if (c_parser_peek_2nd_token (parser)->type == CPP_COLON) in c_parser_omp_clause_if()
13584 c_parser_consume_token (parser); in c_parser_omp_clause_if()
13585 c_parser_consume_token (parser); in c_parser_omp_clause_if()
13591 location_t loc = c_parser_peek_2nd_token (parser)->location; in c_parser_omp_clause_if()
13599 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_if()
13600 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_if()
13604 parens.skip_until_found_close (parser); in c_parser_omp_clause_if()
13662 c_parser_omp_clause_lastprivate (c_parser *parser, tree list) in c_parser_omp_clause_lastprivate() argument
13665 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_lastprivate()
13667 if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) in c_parser_omp_clause_lastprivate()
13670 if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_clause_lastprivate()
13671 && c_parser_peek_2nd_token (parser)->type == CPP_COLON) in c_parser_omp_clause_lastprivate()
13674 = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_lastprivate()
13678 c_parser_consume_token (parser); in c_parser_omp_clause_lastprivate()
13679 c_parser_consume_token (parser); in c_parser_omp_clause_lastprivate()
13682 tree nlist = c_parser_omp_variable_list (parser, loc, in c_parser_omp_clause_lastprivate()
13684 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); in c_parser_omp_clause_lastprivate()
13697 c_parser_omp_clause_mergeable (c_parser *parser ATTRIBUTE_UNUSED, tree list) in c_parser_omp_clause_mergeable()
13704 c = build_omp_clause (c_parser_peek_token (parser)->location, in c_parser_omp_clause_mergeable()
13715 c_parser_omp_clause_nowait (c_parser *parser ATTRIBUTE_UNUSED, tree list) in c_parser_omp_clause_nowait()
13718 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_nowait()
13731 c_parser_omp_clause_num_threads (c_parser *parser, tree list) in c_parser_omp_clause_num_threads() argument
13733 location_t num_threads_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_num_threads()
13735 if (parens.require_open (parser)) in c_parser_omp_clause_num_threads()
13737 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_num_threads()
13738 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_num_threads()
13743 parens.skip_until_found_close (parser); in c_parser_omp_clause_num_threads()
13747 c_parser_error (parser, "expected integer expression"); in c_parser_omp_clause_num_threads()
13777 c_parser_omp_clause_num_tasks (c_parser *parser, tree list) in c_parser_omp_clause_num_tasks() argument
13779 location_t num_tasks_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_num_tasks()
13781 if (parens.require_open (parser)) in c_parser_omp_clause_num_tasks()
13783 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_num_tasks()
13784 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_num_tasks()
13789 parens.skip_until_found_close (parser); in c_parser_omp_clause_num_tasks()
13793 c_parser_error (parser, "expected integer expression"); in c_parser_omp_clause_num_tasks()
13823 c_parser_omp_clause_grainsize (c_parser *parser, tree list) in c_parser_omp_clause_grainsize() argument
13825 location_t grainsize_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_grainsize()
13827 if (parens.require_open (parser)) in c_parser_omp_clause_grainsize()
13829 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_grainsize()
13830 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_grainsize()
13835 parens.skip_until_found_close (parser); in c_parser_omp_clause_grainsize()
13839 c_parser_error (parser, "expected integer expression"); in c_parser_omp_clause_grainsize()
13869 c_parser_omp_clause_priority (c_parser *parser, tree list) in c_parser_omp_clause_priority() argument
13871 location_t priority_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_priority()
13873 if (parens.require_open (parser)) in c_parser_omp_clause_priority()
13875 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_priority()
13876 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_priority()
13881 parens.skip_until_found_close (parser); in c_parser_omp_clause_priority()
13885 c_parser_error (parser, "expected integer expression"); in c_parser_omp_clause_priority()
13916 c_parser_omp_clause_hint (c_parser *parser, tree list) in c_parser_omp_clause_hint() argument
13918 location_t hint_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_hint()
13920 if (parens.require_open (parser)) in c_parser_omp_clause_hint()
13922 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_hint()
13923 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_hint()
13928 parens.skip_until_found_close (parser); in c_parser_omp_clause_hint()
13933 c_parser_error (parser, "expected constant integer expression"); in c_parser_omp_clause_hint()
13955 c_parser_omp_clause_defaultmap (c_parser *parser, tree list) in c_parser_omp_clause_defaultmap() argument
13957 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_defaultmap()
13965 if (!parens.require_open (parser)) in c_parser_omp_clause_defaultmap()
13967 if (c_parser_next_token_is_keyword (parser, RID_DEFAULT)) in c_parser_omp_clause_defaultmap()
13969 else if (!c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_defaultmap()
13972 c_parser_error (parser, "expected %<alloc%>, %<to%>, %<from%>, " in c_parser_omp_clause_defaultmap()
13978 p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_defaultmap()
14024 c_parser_consume_token (parser); in c_parser_omp_clause_defaultmap()
14026 if (!c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) in c_parser_omp_clause_defaultmap()
14028 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_omp_clause_defaultmap()
14030 if (!c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_defaultmap()
14033 c_parser_error (parser, "expected %<scalar%>, %<aggregate%> or " in c_parser_omp_clause_defaultmap()
14037 p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_defaultmap()
14065 c_parser_consume_token (parser); in c_parser_omp_clause_defaultmap()
14067 parens.skip_until_found_close (parser); in c_parser_omp_clause_defaultmap()
14113 parens.skip_until_found_close (parser); in c_parser_omp_clause_defaultmap()
14124 c_parser_omp_clause_use_device_ptr (c_parser *parser, tree list) in c_parser_omp_clause_use_device_ptr() argument
14126 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_USE_DEVICE_PTR, in c_parser_omp_clause_use_device_ptr()
14134 c_parser_omp_clause_use_device_addr (c_parser *parser, tree list) in c_parser_omp_clause_use_device_addr() argument
14136 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_USE_DEVICE_ADDR, in c_parser_omp_clause_use_device_addr()
14144 c_parser_omp_clause_is_device_ptr (c_parser *parser, tree list) in c_parser_omp_clause_is_device_ptr() argument
14146 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_IS_DEVICE_PTR, list); in c_parser_omp_clause_is_device_ptr()
14155 c_parser_oacc_single_int_clause (c_parser *parser, omp_clause_code code, in c_parser_oacc_single_int_clause() argument
14158 location_t loc = c_parser_peek_token (parser)->location; in c_parser_oacc_single_int_clause()
14161 if (!parens.require_open (parser)) in c_parser_oacc_single_int_clause()
14164 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_oacc_single_int_clause()
14165 c_expr expr = c_parser_expression (parser); in c_parser_oacc_single_int_clause()
14170 parens.skip_until_found_close (parser); in c_parser_oacc_single_int_clause()
14219 c_parser_oacc_shape_clause (c_parser *parser, location_t loc, in c_parser_oacc_shape_clause() argument
14229 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_oacc_shape_clause()
14231 c_parser_consume_token (parser); in c_parser_oacc_shape_clause()
14235 c_token *next = c_parser_peek_token (parser); in c_parser_oacc_shape_clause()
14240 && c_parser_next_token_is_keyword (parser, RID_STATIC)) in c_parser_oacc_shape_clause()
14242 c_parser_consume_token (parser); in c_parser_oacc_shape_clause()
14244 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_oacc_shape_clause()
14250 c_parser_error (parser, "too many %<static%> arguments"); in c_parser_oacc_shape_clause()
14255 if (c_parser_next_token_is (parser, CPP_MULT) in c_parser_oacc_shape_clause()
14256 && (c_parser_peek_2nd_token (parser)->type == CPP_COMMA in c_parser_oacc_shape_clause()
14257 || c_parser_peek_2nd_token (parser)->type in c_parser_oacc_shape_clause()
14260 c_parser_consume_token (parser); in c_parser_oacc_shape_clause()
14263 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_oacc_shape_clause()
14265 c_parser_consume_token (parser); in c_parser_oacc_shape_clause()
14273 else if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_oacc_shape_clause()
14275 && c_parser_peek_2nd_token (parser)->type == CPP_COLON) in c_parser_oacc_shape_clause()
14277 c_parser_consume_token (parser); /* id */ in c_parser_oacc_shape_clause()
14278 c_parser_consume_token (parser); /* ':' */ in c_parser_oacc_shape_clause()
14284 c_parser_error (parser, "unexpected argument"); in c_parser_oacc_shape_clause()
14288 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_oacc_shape_clause()
14289 c_expr cexpr = c_parser_expr_no_commas (parser, NULL); in c_parser_oacc_shape_clause()
14302 c_parser_error (parser, "expected integer expression"); in c_parser_oacc_shape_clause()
14318 && c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_oacc_shape_clause()
14320 c_parser_consume_token (parser); in c_parser_oacc_shape_clause()
14327 if (!c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) in c_parser_oacc_shape_clause()
14344 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, 0); in c_parser_oacc_shape_clause()
14371 c_parser_oacc_clause_async (c_parser *parser, tree list) in c_parser_oacc_clause_async() argument
14374 location_t loc = c_parser_peek_token (parser)->location; in c_parser_oacc_clause_async()
14378 if (c_parser_peek_token (parser)->type == CPP_OPEN_PAREN) in c_parser_oacc_clause_async()
14380 c_parser_consume_token (parser); in c_parser_oacc_clause_async()
14382 t = c_parser_expr_no_commas (parser, NULL).value; in c_parser_oacc_clause_async()
14384 c_parser_error (parser, "expected integer expression"); in c_parser_oacc_clause_async()
14386 || !c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) in c_parser_oacc_clause_async()
14406 c_parser_oacc_clause_tile (c_parser *parser, tree list) in c_parser_oacc_clause_tile() argument
14415 loc = c_parser_peek_token (parser)->location; in c_parser_oacc_clause_tile()
14416 if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) in c_parser_oacc_clause_tile()
14421 if (tile && !c_parser_require (parser, CPP_COMMA, "expected %<,%>")) in c_parser_oacc_clause_tile()
14424 if (c_parser_next_token_is (parser, CPP_MULT) in c_parser_oacc_clause_tile()
14425 && (c_parser_peek_2nd_token (parser)->type == CPP_COMMA in c_parser_oacc_clause_tile()
14426 || c_parser_peek_2nd_token (parser)->type == CPP_CLOSE_PAREN)) in c_parser_oacc_clause_tile()
14428 c_parser_consume_token (parser); in c_parser_oacc_clause_tile()
14433 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_oacc_clause_tile()
14434 c_expr cexpr = c_parser_expr_no_commas (parser, NULL); in c_parser_oacc_clause_tile()
14440 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_oacc_clause_tile()
14459 while (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN)); in c_parser_oacc_clause_tile()
14462 c_parser_consume_token (parser); in c_parser_oacc_clause_tile()
14475 c_parser_oacc_clause_wait (c_parser *parser, tree list) in c_parser_oacc_clause_wait() argument
14477 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_oacc_clause_wait()
14479 if (c_parser_peek_token (parser)->type == CPP_OPEN_PAREN) in c_parser_oacc_clause_wait()
14480 list = c_parser_oacc_wait_list (parser, clause_loc, list); in c_parser_oacc_clause_wait()
14498 c_parser_omp_clause_order (c_parser *parser, tree list) in c_parser_omp_clause_order() argument
14500 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_order()
14505 if (!parens.require_open (parser)) in c_parser_omp_clause_order()
14507 if (!c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_order()
14509 c_parser_error (parser, "expected %<concurrent%>"); in c_parser_omp_clause_order()
14512 p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_order()
14515 c_parser_error (parser, "expected %<concurrent%>"); in c_parser_omp_clause_order()
14518 c_parser_consume_token (parser); in c_parser_omp_clause_order()
14519 parens.skip_until_found_close (parser); in c_parser_omp_clause_order()
14526 parens.skip_until_found_close (parser); in c_parser_omp_clause_order()
14535 c_parser_omp_clause_bind (c_parser *parser, tree list) in c_parser_omp_clause_bind() argument
14537 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_bind()
14543 if (!parens.require_open (parser)) in c_parser_omp_clause_bind()
14545 if (!c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_bind()
14548 c_parser_error (parser, in c_parser_omp_clause_bind()
14550 parens.skip_until_found_close (parser); in c_parser_omp_clause_bind()
14553 p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_bind()
14560 c_parser_consume_token (parser); in c_parser_omp_clause_bind()
14561 parens.skip_until_found_close (parser); in c_parser_omp_clause_bind()
14577 c_parser_omp_clause_ordered (c_parser *parser, tree list) in c_parser_omp_clause_ordered() argument
14583 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_ordered()
14584 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_omp_clause_ordered()
14587 parens.consume_open (parser); in c_parser_omp_clause_ordered()
14588 num = c_parser_expr_no_commas (parser, NULL).value; in c_parser_omp_clause_ordered()
14589 parens.skip_until_found_close (parser); in c_parser_omp_clause_ordered()
14617 c_parser_omp_clause_private (c_parser *parser, tree list) in c_parser_omp_clause_private() argument
14619 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_PRIVATE, list); in c_parser_omp_clause_private()
14645 c_parser_omp_clause_reduction (c_parser *parser, enum omp_clause_code kind, in c_parser_omp_clause_reduction() argument
14648 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_reduction()
14650 if (parens.require_open (parser)) in c_parser_omp_clause_reduction()
14659 if (c_parser_next_token_is_keyword (parser, RID_DEFAULT) in c_parser_omp_clause_reduction()
14660 && c_parser_peek_2nd_token (parser)->type == CPP_COMMA) in c_parser_omp_clause_reduction()
14662 c_parser_consume_token (parser); in c_parser_omp_clause_reduction()
14663 c_parser_consume_token (parser); in c_parser_omp_clause_reduction()
14665 else if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_clause_reduction()
14666 && c_parser_peek_2nd_token (parser)->type == CPP_COMMA) in c_parser_omp_clause_reduction()
14669 = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_reduction()
14676 c_parser_consume_token (parser); in c_parser_omp_clause_reduction()
14677 c_parser_consume_token (parser); in c_parser_omp_clause_reduction()
14682 switch (c_parser_peek_token (parser)->type) in c_parser_omp_clause_reduction()
14711 = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_reduction()
14722 reduc_id = c_parser_peek_token (parser)->value; in c_parser_omp_clause_reduction()
14726 c_parser_error (parser, in c_parser_omp_clause_reduction()
14729 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, 0); in c_parser_omp_clause_reduction()
14732 c_parser_consume_token (parser); in c_parser_omp_clause_reduction()
14734 if (c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_omp_clause_reduction()
14738 nl = c_parser_omp_variable_list (parser, clause_loc, kind, list); in c_parser_omp_clause_reduction()
14778 parens.skip_until_found_close (parser); in c_parser_omp_clause_reduction()
14800 c_parser_omp_clause_schedule (c_parser *parser, tree list) in c_parser_omp_clause_schedule() argument
14803 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_schedule()
14807 if (!parens.require_open (parser)) in c_parser_omp_clause_schedule()
14812 while (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_schedule()
14814 tree kind = c_parser_peek_token (parser)->value; in c_parser_omp_clause_schedule()
14824 c_parser_consume_token (parser); in c_parser_omp_clause_schedule()
14826 && c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_clause_schedule()
14827 c_parser_consume_token (parser); in c_parser_omp_clause_schedule()
14830 c_parser_require (parser, CPP_COLON, "expected %<:%>"); in c_parser_omp_clause_schedule()
14845 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_schedule()
14847 tree kind = c_parser_peek_token (parser)->value; in c_parser_omp_clause_schedule()
14874 else if (c_parser_next_token_is_keyword (parser, RID_STATIC)) in c_parser_omp_clause_schedule()
14876 else if (c_parser_next_token_is_keyword (parser, RID_AUTO)) in c_parser_omp_clause_schedule()
14881 c_parser_consume_token (parser); in c_parser_omp_clause_schedule()
14882 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_clause_schedule()
14885 c_parser_consume_token (parser); in c_parser_omp_clause_schedule()
14887 here = c_parser_peek_token (parser)->location; in c_parser_omp_clause_schedule()
14888 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_schedule()
14916 c_parser_error (parser, "expected integer expression"); in c_parser_omp_clause_schedule()
14918 parens.skip_until_found_close (parser); in c_parser_omp_clause_schedule()
14921 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_omp_clause_schedule()
14933 c_parser_error (parser, "invalid schedule kind"); in c_parser_omp_clause_schedule()
14934 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, 0); in c_parser_omp_clause_schedule()
14942 c_parser_omp_clause_shared (c_parser *parser, tree list) in c_parser_omp_clause_shared() argument
14944 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_SHARED, list); in c_parser_omp_clause_shared()
14951 c_parser_omp_clause_untied (c_parser *parser ATTRIBUTE_UNUSED, tree list) in c_parser_omp_clause_untied()
14958 c = build_omp_clause (c_parser_peek_token (parser)->location, in c_parser_omp_clause_untied()
14970 c_parser_omp_clause_branch (c_parser *parser ATTRIBUTE_UNUSED, in c_parser_omp_clause_branch()
14975 tree c = build_omp_clause (c_parser_peek_token (parser)->location, code); in c_parser_omp_clause_branch()
14988 c_parser_omp_clause_cancelkind (c_parser *parser ATTRIBUTE_UNUSED, in c_parser_omp_clause_cancelkind()
14991 tree c = build_omp_clause (c_parser_peek_token (parser)->location, code); in c_parser_omp_clause_cancelkind()
15001 c_parser_omp_clause_nogroup (c_parser *parser ATTRIBUTE_UNUSED, tree list) in c_parser_omp_clause_nogroup()
15004 tree c = build_omp_clause (c_parser_peek_token (parser)->location, in c_parser_omp_clause_nogroup()
15015 c_parser_omp_clause_orderedkind (c_parser *parser ATTRIBUTE_UNUSED, in c_parser_omp_clause_orderedkind()
15019 tree c = build_omp_clause (c_parser_peek_token (parser)->location, code); in c_parser_omp_clause_orderedkind()
15028 c_parser_omp_clause_num_teams (c_parser *parser, tree list) in c_parser_omp_clause_num_teams() argument
15030 location_t num_teams_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_num_teams()
15032 if (parens.require_open (parser)) in c_parser_omp_clause_num_teams()
15034 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_num_teams()
15035 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_num_teams()
15040 parens.skip_until_found_close (parser); in c_parser_omp_clause_num_teams()
15044 c_parser_error (parser, "expected integer expression"); in c_parser_omp_clause_num_teams()
15073 c_parser_omp_clause_thread_limit (c_parser *parser, tree list) in c_parser_omp_clause_thread_limit() argument
15075 location_t num_thread_limit_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_thread_limit()
15077 if (parens.require_open (parser)) in c_parser_omp_clause_thread_limit()
15079 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_thread_limit()
15080 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_thread_limit()
15085 parens.skip_until_found_close (parser); in c_parser_omp_clause_thread_limit()
15089 c_parser_error (parser, "expected integer expression"); in c_parser_omp_clause_thread_limit()
15120 c_parser_omp_clause_aligned (c_parser *parser, tree list) in c_parser_omp_clause_aligned() argument
15122 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_aligned()
15126 if (!parens.require_open (parser)) in c_parser_omp_clause_aligned()
15129 nl = c_parser_omp_variable_list (parser, clause_loc, in c_parser_omp_clause_aligned()
15132 if (c_parser_next_token_is (parser, CPP_COLON)) in c_parser_omp_clause_aligned()
15134 c_parser_consume_token (parser); in c_parser_omp_clause_aligned()
15135 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_aligned()
15136 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_aligned()
15153 parens.skip_until_found_close (parser); in c_parser_omp_clause_aligned()
15166 c_parser_omp_clause_linear (c_parser *parser, tree list) in c_parser_omp_clause_linear() argument
15168 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_linear()
15173 if (!parens.require_open (parser)) in c_parser_omp_clause_linear()
15176 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_linear()
15178 c_token *tok = c_parser_peek_token (parser); in c_parser_omp_clause_linear()
15182 if (c_parser_peek_2nd_token (parser)->type != CPP_OPEN_PAREN) in c_parser_omp_clause_linear()
15186 c_parser_consume_token (parser); in c_parser_omp_clause_linear()
15187 c_parser_consume_token (parser); in c_parser_omp_clause_linear()
15191 nl = c_parser_omp_variable_list (parser, clause_loc, in c_parser_omp_clause_linear()
15195 parens.skip_until_found_close (parser); in c_parser_omp_clause_linear()
15197 if (c_parser_next_token_is (parser, CPP_COLON)) in c_parser_omp_clause_linear()
15199 c_parser_consume_token (parser); in c_parser_omp_clause_linear()
15200 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_linear()
15201 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_linear()
15222 parens.skip_until_found_close (parser); in c_parser_omp_clause_linear()
15230 c_parser_omp_clause_nontemporal (c_parser *parser, tree list) in c_parser_omp_clause_nontemporal() argument
15232 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_NONTEMPORAL, list); in c_parser_omp_clause_nontemporal()
15239 c_parser_omp_clause_safelen (c_parser *parser, tree list) in c_parser_omp_clause_safelen() argument
15241 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_safelen()
15245 if (!parens.require_open (parser)) in c_parser_omp_clause_safelen()
15248 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_safelen()
15249 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_safelen()
15262 parens.skip_until_found_close (parser); in c_parser_omp_clause_safelen()
15278 c_parser_omp_clause_simdlen (c_parser *parser, tree list) in c_parser_omp_clause_simdlen() argument
15280 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_simdlen()
15284 if (!parens.require_open (parser)) in c_parser_omp_clause_simdlen()
15287 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_simdlen()
15288 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_simdlen()
15301 parens.skip_until_found_close (parser); in c_parser_omp_clause_simdlen()
15320 c_parser_omp_clause_depend_sink (c_parser *parser, location_t clause_loc, in c_parser_omp_clause_depend_sink() argument
15324 if (c_parser_next_token_is_not (parser, CPP_NAME) in c_parser_omp_clause_depend_sink()
15325 || c_parser_peek_token (parser)->id_kind != C_ID_ID) in c_parser_omp_clause_depend_sink()
15327 c_parser_error (parser, "expected identifier"); in c_parser_omp_clause_depend_sink()
15331 while (c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_clause_depend_sink()
15332 && c_parser_peek_token (parser)->id_kind == C_ID_ID) in c_parser_omp_clause_depend_sink()
15334 tree t = lookup_name (c_parser_peek_token (parser)->value); in c_parser_omp_clause_depend_sink()
15339 undeclared_variable (c_parser_peek_token (parser)->location, in c_parser_omp_clause_depend_sink()
15340 c_parser_peek_token (parser)->value); in c_parser_omp_clause_depend_sink()
15344 c_parser_consume_token (parser); in c_parser_omp_clause_depend_sink()
15347 if (c_parser_next_token_is (parser, CPP_MINUS)) in c_parser_omp_clause_depend_sink()
15349 else if (!c_parser_next_token_is (parser, CPP_PLUS)) in c_parser_omp_clause_depend_sink()
15355 c_parser_consume_token (parser); in c_parser_omp_clause_depend_sink()
15357 if (c_parser_next_token_is_not (parser, CPP_NUMBER)) in c_parser_omp_clause_depend_sink()
15359 c_parser_error (parser, "expected integer"); in c_parser_omp_clause_depend_sink()
15363 addend = c_parser_peek_token (parser)->value; in c_parser_omp_clause_depend_sink()
15366 c_parser_error (parser, "expected integer"); in c_parser_omp_clause_depend_sink()
15369 c_parser_consume_token (parser); in c_parser_omp_clause_depend_sink()
15379 if (c_parser_next_token_is_not (parser, CPP_COMMA)) in c_parser_omp_clause_depend_sink()
15382 c_parser_consume_token (parser); in c_parser_omp_clause_depend_sink()
15411 c_parser_omp_iterators (c_parser *parser) in c_parser_omp_iterators() argument
15414 c_parser_consume_token (parser); in c_parser_omp_iterators()
15419 if (!parens.require_open (parser)) in c_parser_omp_iterators()
15425 if (c_parser_next_tokens_start_typename (parser, cla_prefer_id)) in c_parser_omp_iterators()
15427 struct c_type_name *type = c_parser_type_name (parser); in c_parser_omp_iterators()
15434 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_iterators()
15435 if (!c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_iterators()
15437 c_parser_error (parser, "expected identifier"); in c_parser_omp_iterators()
15441 tree id = c_parser_peek_token (parser)->value; in c_parser_omp_iterators()
15442 c_parser_consume_token (parser); in c_parser_omp_iterators()
15444 if (!c_parser_require (parser, CPP_EQ, "expected %<=%>")) in c_parser_omp_iterators()
15447 location_t eloc = c_parser_peek_token (parser)->location; in c_parser_omp_iterators()
15448 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_iterators()
15452 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_omp_iterators()
15455 eloc = c_parser_peek_token (parser)->location; in c_parser_omp_iterators()
15456 expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_iterators()
15461 if (c_parser_next_token_is (parser, CPP_COLON)) in c_parser_omp_iterators()
15463 c_parser_consume_token (parser); in c_parser_omp_iterators()
15464 eloc = c_parser_peek_token (parser)->location; in c_parser_omp_iterators()
15465 expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_iterators()
15482 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_iterators()
15484 c_parser_consume_token (parser); in c_parser_omp_iterators()
15491 parens.skip_until_found_close (parser); in c_parser_omp_iterators()
15516 c_parser_omp_clause_depend (c_parser *parser, tree list) in c_parser_omp_clause_depend() argument
15518 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_depend()
15523 if (!parens.require_open (parser)) in c_parser_omp_clause_depend()
15528 if (c_parser_next_token_is_not (parser, CPP_NAME)) in c_parser_omp_clause_depend()
15531 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_depend()
15534 iterators = c_parser_omp_iterators (parser); in c_parser_omp_clause_depend()
15535 c_parser_require (parser, CPP_COMMA, "expected %<,%>"); in c_parser_omp_clause_depend()
15558 c_parser_consume_token (parser); in c_parser_omp_clause_depend()
15575 parens.skip_until_found_close (parser); in c_parser_omp_clause_depend()
15579 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_omp_clause_depend()
15583 nl = c_parser_omp_clause_depend_sink (parser, clause_loc, list); in c_parser_omp_clause_depend()
15586 nl = c_parser_omp_variable_list (parser, clause_loc, in c_parser_omp_clause_depend()
15607 parens.skip_until_found_close (parser); in c_parser_omp_clause_depend()
15611 c_parser_error (parser, "invalid depend kind"); in c_parser_omp_clause_depend()
15613 parens.skip_until_found_close (parser); in c_parser_omp_clause_depend()
15633 c_parser_omp_clause_map (c_parser *parser, tree list) in c_parser_omp_clause_map() argument
15635 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_map()
15644 if (!parens.require_open (parser)) in c_parser_omp_clause_map()
15647 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_map()
15649 c_token *tok = c_parser_peek_token (parser); in c_parser_omp_clause_map()
15656 c_token *sectok = c_parser_peek_2nd_token (parser); in c_parser_omp_clause_map()
15659 c_parser_consume_token (parser); in c_parser_omp_clause_map()
15660 c_parser_consume_token (parser); in c_parser_omp_clause_map()
15673 c_parser_consume_token (parser); in c_parser_omp_clause_map()
15680 if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_clause_map()
15681 && c_parser_peek_2nd_token (parser)->type == CPP_COLON) in c_parser_omp_clause_map()
15683 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_map()
15698 c_parser_error (parser, "invalid map kind"); in c_parser_omp_clause_map()
15699 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_omp_clause_map()
15703 c_parser_consume_token (parser); in c_parser_omp_clause_map()
15704 c_parser_consume_token (parser); in c_parser_omp_clause_map()
15710 c_parser_error (parser, "expected identifier"); in c_parser_omp_clause_map()
15711 parens.skip_until_found_close (parser); in c_parser_omp_clause_map()
15731 parens.skip_until_found_close (parser); in c_parser_omp_clause_map()
15736 nl = c_parser_omp_variable_list (parser, clause_loc, OMP_CLAUSE_MAP, list); in c_parser_omp_clause_map()
15741 parens.skip_until_found_close (parser); in c_parser_omp_clause_map()
15749 c_parser_omp_clause_device (c_parser *parser, tree list) in c_parser_omp_clause_device() argument
15751 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_device()
15753 if (parens.require_open (parser)) in c_parser_omp_clause_device()
15755 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_device()
15756 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_device()
15761 parens.skip_until_found_close (parser); in c_parser_omp_clause_device()
15765 c_parser_error (parser, "expected integer expression"); in c_parser_omp_clause_device()
15785 c_parser_omp_clause_dist_schedule (c_parser *parser, tree list) in c_parser_omp_clause_dist_schedule() argument
15788 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_dist_schedule()
15791 if (!parens.require_open (parser)) in c_parser_omp_clause_dist_schedule()
15794 if (!c_parser_next_token_is_keyword (parser, RID_STATIC)) in c_parser_omp_clause_dist_schedule()
15796 c_parser_error (parser, "invalid dist_schedule kind"); in c_parser_omp_clause_dist_schedule()
15797 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_omp_clause_dist_schedule()
15802 c_parser_consume_token (parser); in c_parser_omp_clause_dist_schedule()
15803 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_clause_dist_schedule()
15805 c_parser_consume_token (parser); in c_parser_omp_clause_dist_schedule()
15807 location_t expr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_dist_schedule()
15808 c_expr expr = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_clause_dist_schedule()
15812 parens.skip_until_found_close (parser); in c_parser_omp_clause_dist_schedule()
15815 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_omp_clause_dist_schedule()
15838 c_parser_omp_clause_proc_bind (c_parser *parser, tree list) in c_parser_omp_clause_proc_bind() argument
15840 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_proc_bind()
15845 if (!parens.require_open (parser)) in c_parser_omp_clause_proc_bind()
15848 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_proc_bind()
15850 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_proc_bind()
15864 c_parser_consume_token (parser); in c_parser_omp_clause_proc_bind()
15865 parens.skip_until_found_close (parser); in c_parser_omp_clause_proc_bind()
15872 c_parser_error (parser, "invalid proc_bind kind"); in c_parser_omp_clause_proc_bind()
15873 parens.skip_until_found_close (parser); in c_parser_omp_clause_proc_bind()
15881 c_parser_omp_clause_device_type (c_parser *parser, tree list) in c_parser_omp_clause_device_type() argument
15883 location_t clause_loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_device_type()
15888 if (!parens.require_open (parser)) in c_parser_omp_clause_device_type()
15891 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_clause_device_type()
15893 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_clause_device_type()
15908 c_parser_consume_token (parser); in c_parser_omp_clause_device_type()
15909 parens.skip_until_found_close (parser); in c_parser_omp_clause_device_type()
15916 c_parser_error (parser, "expected %<host%>, %<nohost%> or %<any%>"); in c_parser_omp_clause_device_type()
15917 parens.skip_until_found_close (parser); in c_parser_omp_clause_device_type()
15925 c_parser_omp_clause_to (c_parser *parser, tree list) in c_parser_omp_clause_to() argument
15927 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_TO, list); in c_parser_omp_clause_to()
15934 c_parser_omp_clause_from (c_parser *parser, tree list) in c_parser_omp_clause_from() argument
15936 return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_FROM, list); in c_parser_omp_clause_from()
15943 c_parser_omp_clause_uniform (c_parser *parser, tree list) in c_parser_omp_clause_uniform() argument
15946 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_clause_uniform()
15949 if (parens.require_open (parser)) in c_parser_omp_clause_uniform()
15951 list = c_parser_omp_variable_list (parser, loc, OMP_CLAUSE_UNIFORM, in c_parser_omp_clause_uniform()
15953 parens.skip_until_found_close (parser); in c_parser_omp_clause_uniform()
15962 c_parser_oacc_all_clauses (c_parser *parser, omp_clause_mask mask,
15968 while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL))
15975 if (!first && c_parser_next_token_is (parser, CPP_COMMA))
15976 c_parser_consume_token (parser);
15978 here = c_parser_peek_token (parser)->location;
15979 c_kind = c_parser_omp_clause_name (parser);
15984 clauses = c_parser_oacc_clause_async (parser, clauses);
15993 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
15997 clauses = c_parser_omp_clause_collapse (parser, clauses);
16001 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16005 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16009 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16013 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16017 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16021 clauses = c_parser_omp_clause_default (parser, clauses, true);
16025 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16029 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16033 clauses = c_parser_oacc_data_clause_deviceptr (parser, clauses);
16037 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16046 clauses = c_parser_omp_clause_firstprivate (parser, clauses);
16051 clauses = c_parser_oacc_shape_clause (parser, here, OMP_CLAUSE_GANG,
16055 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16059 clauses = c_parser_omp_clause_if (parser, clauses, false);
16073 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16077 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16081 clauses = c_parser_oacc_single_int_clause (parser,
16087 clauses = c_parser_oacc_single_int_clause (parser,
16093 clauses = c_parser_oacc_data_clause (parser, c_kind, clauses);
16097 clauses = c_parser_omp_clause_private (parser, clauses);
16102 = c_parser_omp_clause_reduction (parser, OMP_CLAUSE_REDUCTION,
16112 clauses = c_parser_oacc_clause_tile (parser, clauses);
16116 clauses = c_parser_omp_clause_use_device_ptr (parser, clauses);
16121 clauses = c_parser_oacc_shape_clause (parser, here, OMP_CLAUSE_VECTOR,
16125 clauses = c_parser_oacc_single_int_clause (parser,
16131 clauses = c_parser_oacc_clause_wait (parser, clauses);
16136 clauses = c_parser_oacc_shape_clause (parser, here, OMP_CLAUSE_WORKER,
16140 c_parser_error (parser, "expected %<#pragma acc%> clause");
16156 c_parser_skip_to_pragma_eol (parser);
16172 c_parser_omp_all_clauses (c_parser *parser, omp_clause_mask mask,
16179 while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL))
16186 if (nested && c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
16191 if (c_parser_next_token_is (parser, CPP_COMMA))
16192 c_parser_consume_token (parser);
16194 error_at (c_parser_peek_token (parser)->location,
16199 here = c_parser_peek_token (parser)->location;
16200 c_kind = c_parser_omp_clause_name (parser);
16205 clauses = c_parser_omp_clause_bind (parser, clauses);
16209 clauses = c_parser_omp_clause_collapse (parser, clauses);
16213 clauses = c_parser_omp_clause_copyin (parser, clauses);
16217 clauses = c_parser_omp_clause_copyprivate (parser, clauses);
16221 clauses = c_parser_omp_clause_default (parser, clauses, false);
16225 clauses = c_parser_omp_clause_firstprivate (parser, clauses);
16229 clauses = c_parser_omp_clause_final (parser, clauses);
16233 clauses = c_parser_omp_clause_grainsize (parser, clauses);
16237 clauses = c_parser_omp_clause_hint (parser, clauses);
16241 clauses = c_parser_omp_clause_defaultmap (parser, clauses);
16245 clauses = c_parser_omp_clause_if (parser, clauses, true);
16250 = c_parser_omp_clause_reduction (parser, OMP_CLAUSE_IN_REDUCTION,
16255 clauses = c_parser_omp_clause_lastprivate (parser, clauses);
16259 clauses = c_parser_omp_clause_mergeable (parser, clauses);
16263 clauses = c_parser_omp_clause_nowait (parser, clauses);
16267 clauses = c_parser_omp_clause_num_tasks (parser, clauses);
16271 clauses = c_parser_omp_clause_num_threads (parser, clauses);
16275 clauses = c_parser_omp_clause_order (parser, clauses);
16279 clauses = c_parser_omp_clause_ordered (parser, clauses);
16283 clauses = c_parser_omp_clause_priority (parser, clauses);
16287 clauses = c_parser_omp_clause_private (parser, clauses);
16292 = c_parser_omp_clause_reduction (parser, OMP_CLAUSE_REDUCTION,
16297 clauses = c_parser_omp_clause_schedule (parser, clauses);
16301 clauses = c_parser_omp_clause_shared (parser, clauses);
16306 = c_parser_omp_clause_reduction (parser, OMP_CLAUSE_TASK_REDUCTION,
16311 clauses = c_parser_omp_clause_untied (parser, clauses);
16315 clauses = c_parser_omp_clause_branch (parser, OMP_CLAUSE_INBRANCH,
16320 clauses = c_parser_omp_clause_nontemporal (parser, clauses);
16324 clauses = c_parser_omp_clause_branch (parser, OMP_CLAUSE_NOTINBRANCH,
16330 = c_parser_omp_clause_cancelkind (parser, OMP_CLAUSE_PARALLEL,
16343 = c_parser_omp_clause_cancelkind (parser, OMP_CLAUSE_FOR,
16351 = c_parser_omp_clause_cancelkind (parser, OMP_CLAUSE_SECTIONS,
16359 = c_parser_omp_clause_cancelkind (parser, OMP_CLAUSE_TASKGROUP,
16367 = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_LINK, clauses);
16373 = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_TO_DECLARE,
16376 clauses = c_parser_omp_clause_to (parser, clauses);
16380 clauses = c_parser_omp_clause_from (parser, clauses);
16384 clauses = c_parser_omp_clause_uniform (parser, clauses);
16388 clauses = c_parser_omp_clause_num_teams (parser, clauses);
16392 clauses = c_parser_omp_clause_thread_limit (parser, clauses);
16396 clauses = c_parser_omp_clause_aligned (parser, clauses);
16400 clauses = c_parser_omp_clause_linear (parser, clauses);
16404 clauses = c_parser_omp_clause_depend (parser, clauses);
16408 clauses = c_parser_omp_clause_map (parser, clauses);
16412 clauses = c_parser_omp_clause_use_device_ptr (parser, clauses);
16416 clauses = c_parser_omp_clause_use_device_addr (parser, clauses);
16420 clauses = c_parser_omp_clause_is_device_ptr (parser, clauses);
16424 clauses = c_parser_omp_clause_device (parser, clauses);
16428 clauses = c_parser_omp_clause_dist_schedule (parser, clauses);
16432 clauses = c_parser_omp_clause_proc_bind (parser, clauses);
16436 clauses = c_parser_omp_clause_device_type (parser, clauses);
16440 clauses = c_parser_omp_clause_safelen (parser, clauses);
16444 clauses = c_parser_omp_clause_simdlen (parser, clauses);
16448 clauses = c_parser_omp_clause_nogroup (parser, clauses);
16453 = c_parser_omp_clause_orderedkind (parser, OMP_CLAUSE_THREADS,
16459 = c_parser_omp_clause_orderedkind (parser, OMP_CLAUSE_SIMD,
16464 c_parser_error (parser, "expected %<#pragma omp%> clause");
16481 c_parser_skip_to_pragma_eol (parser);
16502 c_parser_omp_structured_block (c_parser *parser, bool *if_p) in c_parser_omp_structured_block() argument
16505 c_parser_statement (parser, if_p); in c_parser_omp_structured_block()
16516 c_parser_oacc_cache (location_t loc, c_parser *parser) in c_parser_oacc_cache() argument
16520 clauses = c_parser_omp_var_list_parens (parser, OMP_CLAUSE__CACHE_, NULL); in c_parser_oacc_cache()
16523 c_parser_skip_to_pragma_eol (parser); in c_parser_oacc_cache()
16553 c_parser_oacc_data (location_t loc, c_parser *parser, bool *if_p) in c_parser_oacc_data() argument
16557 clauses = c_parser_oacc_all_clauses (parser, OACC_DATA_CLAUSE_MASK, in c_parser_oacc_data()
16561 add_stmt (c_parser_omp_structured_block (parser, if_p)); in c_parser_oacc_data()
16583 c_parser_oacc_declare (c_parser *parser) in c_parser_oacc_declare() argument
16585 location_t pragma_loc = c_parser_peek_token (parser)->location; in c_parser_oacc_declare()
16590 c_parser_consume_pragma (parser); in c_parser_oacc_declare()
16592 clauses = c_parser_oacc_all_clauses (parser, OACC_DECLARE_CLAUSE_MASK, in c_parser_oacc_declare()
16751 c_parser_oacc_enter_exit_data (c_parser *parser, bool enter) in c_parser_oacc_enter_exit_data() argument
16753 location_t loc = c_parser_peek_token (parser)->location; in c_parser_oacc_enter_exit_data()
16757 c_parser_consume_pragma (parser); in c_parser_oacc_enter_exit_data()
16759 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_oacc_enter_exit_data()
16761 p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_oacc_enter_exit_data()
16762 c_parser_consume_token (parser); in c_parser_oacc_enter_exit_data()
16769 parser->error = true; in c_parser_oacc_enter_exit_data()
16770 c_parser_skip_to_pragma_eol (parser); in c_parser_oacc_enter_exit_data()
16775 clauses = c_parser_oacc_all_clauses (parser, OACC_ENTER_DATA_CLAUSE_MASK, in c_parser_oacc_enter_exit_data()
16778 clauses = c_parser_oacc_all_clauses (parser, OACC_EXIT_DATA_CLAUSE_MASK, in c_parser_oacc_enter_exit_data()
16807 c_parser_oacc_host_data (location_t loc, c_parser *parser, bool *if_p) in c_parser_oacc_host_data() argument
16811 clauses = c_parser_oacc_all_clauses (parser, OACC_HOST_DATA_CLAUSE_MASK, in c_parser_oacc_host_data()
16815 add_stmt (c_parser_omp_structured_block (parser, if_p)); in c_parser_oacc_host_data()
16841 c_parser_oacc_loop (location_t loc, c_parser *parser, char *p_name, in c_parser_oacc_loop() argument
16849 tree clauses = c_parser_oacc_all_clauses (parser, mask, p_name, in c_parser_oacc_loop()
16861 tree stmt = c_parser_omp_for_loop (loc, parser, OACC_LOOP, clauses, NULL, in c_parser_oacc_loop()
16941 c_parser_oacc_compute (location_t loc, c_parser *parser, in c_parser_oacc_compute() argument
16967 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_oacc_compute()
16969 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_oacc_compute()
16972 c_parser_consume_token (parser); in c_parser_oacc_compute()
16975 c_parser_oacc_loop (loc, parser, p_name, mask, &clauses, if_p); in c_parser_oacc_compute()
16980 tree clauses = c_parser_oacc_all_clauses (parser, mask, p_name); in c_parser_oacc_compute()
16983 add_stmt (c_parser_omp_structured_block (parser, if_p)); in c_parser_oacc_compute()
17006 c_parser_oacc_routine (c_parser *parser, enum pragma_context context) in c_parser_oacc_routine() argument
17013 data.loc = c_parser_peek_token (parser)->location; in c_parser_oacc_routine()
17015 c_parser_consume_pragma (parser); in c_parser_oacc_routine()
17018 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_oacc_routine()
17020 c_parser_consume_token (parser); /* '(' */ in c_parser_oacc_routine()
17023 c_token *name_token = c_parser_peek_token (parser); in c_parser_oacc_routine()
17033 c_parser_consume_token (parser); in c_parser_oacc_routine()
17036 c_parser_error (parser, "expected function name"); in c_parser_oacc_routine()
17039 || !c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) in c_parser_oacc_routine()
17041 c_parser_skip_to_pragma_eol (parser, false); in c_parser_oacc_routine()
17046 = c_parser_oacc_all_clauses (parser, OACC_ROUTINE_CLAUSE_MASK, in c_parser_oacc_routine()
17063 = c_parser_oacc_all_clauses (parser, OACC_ROUTINE_CLAUSE_MASK, in c_parser_oacc_routine()
17073 if (c_parser_next_token_is (parser, CPP_PRAGMA) in c_parser_oacc_routine()
17074 || c_parser_next_token_is_keyword (parser, RID_STATIC_ASSERT)) in c_parser_oacc_routine()
17084 if (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_oacc_routine()
17085 && c_parser_peek_token (parser)->keyword == RID_EXTENSION) in c_parser_oacc_routine()
17089 c_parser_consume_token (parser); in c_parser_oacc_routine()
17090 while (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_oacc_routine()
17091 && c_parser_peek_token (parser)->keyword == RID_EXTENSION); in c_parser_oacc_routine()
17092 c_parser_declaration_or_fndef (parser, true, true, true, false, true, in c_parser_oacc_routine()
17097 c_parser_declaration_or_fndef (parser, true, true, true, false, true, in c_parser_oacc_routine()
17182 c_parser_oacc_update (c_parser *parser) in c_parser_oacc_update() argument
17184 location_t loc = c_parser_peek_token (parser)->location; in c_parser_oacc_update()
17186 c_parser_consume_pragma (parser); in c_parser_oacc_update()
17188 tree clauses = c_parser_oacc_all_clauses (parser, OACC_UPDATE_CLAUSE_MASK, in c_parser_oacc_update()
17198 if (parser->error) in c_parser_oacc_update()
17218 c_parser_oacc_wait (location_t loc, c_parser *parser, char *p_name) in c_parser_oacc_wait() argument
17222 if (c_parser_peek_token (parser)->type == CPP_OPEN_PAREN) in c_parser_oacc_wait()
17223 list = c_parser_oacc_wait_list (parser, loc, list); in c_parser_oacc_wait()
17226 clauses = c_parser_oacc_all_clauses (parser, OACC_WAIT_CLAUSE_MASK, p_name); in c_parser_oacc_wait()
17287 c_parser_omp_atomic (location_t loc, c_parser *parser) in c_parser_omp_atomic() argument
17302 while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) in c_parser_omp_atomic()
17304 if (!first && c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_atomic()
17305 c_parser_consume_token (parser); in c_parser_omp_atomic()
17309 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_atomic()
17312 = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_atomic()
17313 location_t cloc = c_parser_peek_token (parser)->location; in c_parser_omp_atomic()
17338 c_parser_consume_token (parser); in c_parser_omp_atomic()
17339 clauses = c_parser_omp_clause_hint (parser, clauses); in c_parser_omp_atomic()
17365 c_parser_consume_token (parser); in c_parser_omp_atomic()
17371 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_atomic()
17447 v = c_parser_cast_expression (parser, NULL).value; in c_parser_omp_atomic()
17454 loc = c_parser_peek_token (parser)->location; in c_parser_omp_atomic()
17455 if (!c_parser_require (parser, CPP_EQ, "expected %<=%>")) in c_parser_omp_atomic()
17459 lhs = c_parser_expression (parser).value; in c_parser_omp_atomic()
17466 lhs = c_parser_cast_expression (parser, NULL).value; in c_parser_omp_atomic()
17485 if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_omp_atomic()
17487 c_parser_consume_token (parser); in c_parser_omp_atomic()
17492 v = c_parser_cast_expression (parser, NULL).value; in c_parser_omp_atomic()
17499 if (!c_parser_require (parser, CPP_EQ, "expected %<=%>")) in c_parser_omp_atomic()
17510 eloc = c_parser_peek_token (parser)->location; in c_parser_omp_atomic()
17511 expr = c_parser_cast_expression (parser, NULL); in c_parser_omp_atomic()
17521 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_omp_atomic()
17524 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_omp_atomic()
17525 c_parser_consume_token (parser); in c_parser_omp_atomic()
17528 c_parser_skip_to_end_of_block_or_statement (parser); in c_parser_omp_atomic()
17529 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_omp_atomic()
17530 c_parser_consume_token (parser); in c_parser_omp_atomic()
17606 switch (c_parser_peek_token (parser)->type) in c_parser_omp_atomic()
17636 c_parser_consume_token (parser); in c_parser_omp_atomic()
17637 eloc = c_parser_peek_token (parser)->location; in c_parser_omp_atomic()
17638 expr = c_parser_expr_no_commas (parser, NULL, unfolded_lhs); in c_parser_omp_atomic()
17677 if (c_parser_peek_token (parser)->type == CPP_SEMICOLON) in c_parser_omp_atomic()
17688 c_parser_consume_token (parser); in c_parser_omp_atomic()
17700 c_parser_error (parser, "invalid form of %<#pragma omp atomic%>"); in c_parser_omp_atomic()
17703 c_parser_error (parser, in c_parser_omp_atomic()
17710 loc = c_parser_peek_token (parser)->location; in c_parser_omp_atomic()
17711 c_parser_consume_token (parser); in c_parser_omp_atomic()
17712 eloc = c_parser_peek_token (parser)->location; in c_parser_omp_atomic()
17713 expr = c_parser_expression (parser); in c_parser_omp_atomic()
17722 if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) in c_parser_omp_atomic()
17724 v = c_parser_cast_expression (parser, NULL).value; in c_parser_omp_atomic()
17731 if (!c_parser_require (parser, CPP_EQ, "expected %<=%>")) in c_parser_omp_atomic()
17733 eloc = c_parser_peek_token (parser)->location; in c_parser_omp_atomic()
17734 expr = c_parser_cast_expression (parser, NULL); in c_parser_omp_atomic()
17746 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_omp_atomic()
17747 c_parser_require (parser, CPP_CLOSE_BRACE, "expected %<}%>"); in c_parser_omp_atomic()
17764 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_omp_atomic()
17773 c_parser_omp_barrier (c_parser *parser) in c_parser_omp_barrier() argument
17775 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_barrier()
17776 c_parser_consume_pragma (parser); in c_parser_omp_barrier()
17777 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_barrier()
17795 c_parser_omp_critical (location_t loc, c_parser *parser, bool *if_p) in c_parser_omp_critical() argument
17799 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_omp_critical()
17801 c_parser_consume_token (parser); in c_parser_omp_critical()
17802 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_critical()
17804 name = c_parser_peek_token (parser)->value; in c_parser_omp_critical()
17805 c_parser_consume_token (parser); in c_parser_omp_critical()
17806 c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>"); in c_parser_omp_critical()
17809 c_parser_error (parser, "expected identifier"); in c_parser_omp_critical()
17811 if (c_parser_next_token_is (parser, CPP_COMMA) in c_parser_omp_critical()
17812 && c_parser_peek_2nd_token (parser)->type == CPP_NAME) in c_parser_omp_critical()
17813 c_parser_consume_token (parser); in c_parser_omp_critical()
17815 clauses = c_parser_omp_all_clauses (parser, in c_parser_omp_critical()
17821 if (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) in c_parser_omp_critical()
17822 c_parser_error (parser, "expected %<(%> or end of line"); in c_parser_omp_critical()
17823 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_critical()
17826 stmt = c_parser_omp_structured_block (parser, if_p); in c_parser_omp_critical()
17845 c_parser_omp_depobj (c_parser *parser) in c_parser_omp_depobj() argument
17847 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_depobj()
17848 c_parser_consume_pragma (parser); in c_parser_omp_depobj()
17850 if (!parens.require_open (parser)) in c_parser_omp_depobj()
17852 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_depobj()
17856 tree depobj = c_parser_expr_no_commas (parser, NULL).value; in c_parser_omp_depobj()
17877 parens.skip_until_found_close (parser); in c_parser_omp_depobj()
17880 location_t c_loc = c_parser_peek_token (parser)->location; in c_parser_omp_depobj()
17881 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_depobj()
17883 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_depobj()
17885 c_parser_consume_token (parser); in c_parser_omp_depobj()
17888 clause = c_parser_omp_clause_depend (parser, NULL_TREE); in c_parser_omp_depobj()
17898 if (c_parens.require_open (parser)) in c_parser_omp_depobj()
17900 location_t c2_loc = c_parser_peek_token (parser)->location; in c_parser_omp_depobj()
17901 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_depobj()
17904 = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_depobj()
17906 c_parser_consume_token (parser); in c_parser_omp_depobj()
17922 c_parens.skip_until_found_close (parser); in c_parser_omp_depobj()
17933 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_depobj()
17949 c_parser_omp_flush (c_parser *parser) in c_parser_omp_flush() argument
17951 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_flush()
17952 c_parser_consume_pragma (parser); in c_parser_omp_flush()
17954 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_flush()
17957 = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_flush()
17966 error_at (c_parser_peek_token (parser)->location, in c_parser_omp_flush()
17968 c_parser_consume_token (parser); in c_parser_omp_flush()
17970 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_omp_flush()
17973 error_at (c_parser_peek_token (parser)->location, in c_parser_omp_flush()
17976 c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ERROR, NULL); in c_parser_omp_flush()
17978 else if (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) in c_parser_omp_flush()
17979 c_parser_error (parser, "expected %<(%> or end of line"); in c_parser_omp_flush()
17980 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_flush()
17991 c_parser_omp_scan_loop_body (c_parser *parser, bool open_brace_parsed) in c_parser_omp_scan_loop_body() argument
17997 loc = c_parser_peek_token (parser)->location; in c_parser_omp_scan_loop_body()
17999 && !c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) in c_parser_omp_scan_loop_body()
18002 parser->error = false; in c_parser_omp_scan_loop_body()
18006 substmt = c_parser_omp_structured_block (parser, NULL); in c_parser_omp_scan_loop_body()
18011 loc = c_parser_peek_token (parser)->location; in c_parser_omp_scan_loop_body()
18012 if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_OMP_SCAN) in c_parser_omp_scan_loop_body()
18016 c_parser_consume_pragma (parser); in c_parser_omp_scan_loop_body()
18018 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_scan_loop_body()
18021 = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_scan_loop_body()
18029 c_parser_consume_token (parser); in c_parser_omp_scan_loop_body()
18030 clauses = c_parser_omp_var_list_parens (parser, clause, NULL_TREE); in c_parser_omp_scan_loop_body()
18033 c_parser_error (parser, "expected %<inclusive%> or " in c_parser_omp_scan_loop_body()
18035 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_scan_loop_body()
18041 substmt = c_parser_omp_structured_block (parser, NULL); in c_parser_omp_scan_loop_body()
18046 c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, in c_parser_omp_scan_loop_body()
18057 c_parser_omp_for_loop (location_t loc, c_parser *parser, enum tree_code code, in c_parser_omp_for_loop() argument
18120 if (!c_parser_next_token_is_keyword (parser, RID_FOR)) in c_parser_omp_for_loop()
18122 c_parser_error (parser, "for statement expected"); in c_parser_omp_for_loop()
18125 for_loc = c_parser_peek_token (parser)->location; in c_parser_omp_for_loop()
18126 c_parser_consume_token (parser); in c_parser_omp_for_loop()
18133 if (!parens.require_open (parser)) in c_parser_omp_for_loop()
18137 if (c_parser_next_tokens_start_declaration (parser)) in c_parser_omp_for_loop()
18142 c_parser_declaration_or_fndef (parser, true, true, true, true, true, in c_parser_omp_for_loop()
18165 else if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_for_loop()
18166 && c_parser_peek_2nd_token (parser)->type == CPP_EQ) in c_parser_omp_for_loop()
18172 decl_exp = c_parser_postfix_expression (parser); in c_parser_omp_for_loop()
18175 c_parser_require (parser, CPP_EQ, "expected %<=%>"); in c_parser_omp_for_loop()
18177 init_loc = c_parser_peek_token (parser)->location; in c_parser_omp_for_loop()
18178 init_exp = c_parser_expr_no_commas (parser, NULL); in c_parser_omp_for_loop()
18186 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_omp_for_loop()
18191 c_parser_error (parser, in c_parser_omp_for_loop()
18193 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, in c_parser_omp_for_loop()
18201 if (c_parser_next_token_is_not (parser, CPP_SEMICOLON)) in c_parser_omp_for_loop()
18203 location_t cond_loc = c_parser_peek_token (parser)->location; in c_parser_omp_for_loop()
18205 = c_parser_binary_expression (parser, NULL, NULL_TREE); in c_parser_omp_for_loop()
18236 c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); in c_parser_omp_for_loop()
18240 if (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN)) in c_parser_omp_for_loop()
18242 location_t incr_loc = c_parser_peek_token (parser)->location; in c_parser_omp_for_loop()
18245 c_parser_expression (parser).value); in c_parser_omp_for_loop()
18247 parens.skip_until_found_close (parser); in c_parser_omp_for_loop()
18269 if (c_parser_next_token_is_keyword (parser, RID_FOR)) in c_parser_omp_for_loop()
18271 c_parser_consume_token (parser); in c_parser_omp_for_loop()
18274 else if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) in c_parser_omp_for_loop()
18276 c_parser_consume_token (parser); in c_parser_omp_for_loop()
18280 && c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_omp_for_loop()
18281 c_parser_consume_token (parser); in c_parser_omp_for_loop()
18284 c_parser_error (parser, "not enough perfectly nested loops"); in c_parser_omp_for_loop()
18310 c_parser_omp_scan_loop_body (parser, open_brace_parsed); in c_parser_omp_for_loop()
18313 location_t here = c_parser_peek_token (parser)->location; in c_parser_omp_for_loop()
18315 c_parser_compound_statement_nostart (parser); in c_parser_omp_for_loop()
18319 add_stmt (c_parser_c99_block_statement (parser, if_p)); in c_parser_omp_for_loop()
18333 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_omp_for_loop()
18335 c_parser_consume_token (parser); in c_parser_omp_for_loop()
18338 else if (c_parser_next_token_is (parser, CPP_SEMICOLON)) in c_parser_omp_for_loop()
18339 c_parser_consume_token (parser); in c_parser_omp_for_loop()
18342 c_parser_error (parser, "collapsed loops not perfectly nested"); in c_parser_omp_for_loop()
18345 location_t here = c_parser_peek_token (parser)->location; in c_parser_omp_for_loop()
18348 c_parser_compound_statement_nostart (parser); in c_parser_omp_for_loop()
18459 c_parser_omp_loop (location_t loc, c_parser *parser, in c_parser_omp_loop() argument
18468 clauses = c_parser_omp_all_clauses (parser, mask, p_name, cclauses == NULL); in c_parser_omp_loop()
18476 ret = c_parser_omp_for_loop (loc, parser, OMP_LOOP, clauses, cclauses, if_p); in c_parser_omp_loop()
18504 c_parser_omp_simd (location_t loc, c_parser *parser, in c_parser_omp_simd() argument
18513 clauses = c_parser_omp_all_clauses (parser, mask, p_name, cclauses == NULL); in c_parser_omp_simd()
18530 ret = c_parser_omp_for_loop (loc, parser, OMP_SIMD, clauses, cclauses, if_p); in c_parser_omp_simd()
18561 c_parser_omp_for (location_t loc, c_parser *parser, in c_parser_omp_for() argument
18577 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_for()
18579 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_for()
18587 c_parser_consume_token (parser); in c_parser_omp_for()
18589 return c_parser_omp_simd (loc, parser, p_name, mask, cclauses, in c_parser_omp_for()
18592 ret = c_parser_omp_simd (loc, parser, p_name, mask, cclauses, if_p); in c_parser_omp_for()
18607 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_for()
18615 clauses = c_parser_omp_all_clauses (parser, mask, p_name, cclauses == NULL); in c_parser_omp_for()
18623 ret = c_parser_omp_for_loop (loc, parser, OMP_FOR, clauses, cclauses, if_p); in c_parser_omp_for()
18641 c_parser_omp_master (location_t loc, c_parser *parser, in c_parser_omp_master() argument
18649 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_master()
18651 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_master()
18659 c_parser_consume_token (parser); in c_parser_omp_master()
18661 return c_parser_omp_taskloop (loc, parser, p_name, mask, cclauses, in c_parser_omp_master()
18664 ret = c_parser_omp_taskloop (loc, parser, p_name, mask, cclauses, in c_parser_omp_master()
18675 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_master()
18681 clauses = c_parser_omp_all_clauses (parser, mask, p_name, false); in c_parser_omp_master()
18685 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_master()
18687 return c_finish_omp_master (loc, c_parser_omp_structured_block (parser, in c_parser_omp_master()
18709 c_parser_omp_ordered (c_parser *parser, enum pragma_context context, in c_parser_omp_ordered() argument
18712 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_ordered()
18713 c_parser_consume_pragma (parser); in c_parser_omp_ordered()
18717 c_parser_error (parser, "expected declaration specifiers"); in c_parser_omp_ordered()
18718 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_ordered()
18722 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_ordered()
18724 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_ordered()
18730 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_ordered()
18738 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_ordered()
18743 = c_parser_omp_all_clauses (parser, in c_parser_omp_ordered()
18751 tree clauses = c_parser_omp_all_clauses (parser, OMP_ORDERED_CLAUSE_MASK, in c_parser_omp_ordered()
18759 c_parser_omp_structured_block (parser, if_p)); in c_parser_omp_ordered()
18775 c_parser_omp_sections_scope (location_t sections_loc, c_parser *parser) in c_parser_omp_sections_scope() argument
18781 loc = c_parser_peek_token (parser)->location; in c_parser_omp_sections_scope()
18782 if (!c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) in c_parser_omp_sections_scope()
18785 parser->error = false; in c_parser_omp_sections_scope()
18791 if (c_parser_peek_token (parser)->pragma_kind != PRAGMA_OMP_SECTION) in c_parser_omp_sections_scope()
18793 substmt = c_parser_omp_structured_block (parser, NULL); in c_parser_omp_sections_scope()
18801 if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) in c_parser_omp_sections_scope()
18803 if (c_parser_next_token_is (parser, CPP_EOF)) in c_parser_omp_sections_scope()
18806 loc = c_parser_peek_token (parser)->location; in c_parser_omp_sections_scope()
18807 if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_OMP_SECTION) in c_parser_omp_sections_scope()
18809 c_parser_consume_pragma (parser); in c_parser_omp_sections_scope()
18810 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_sections_scope()
18819 substmt = c_parser_omp_structured_block (parser, NULL); in c_parser_omp_sections_scope()
18824 c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, in c_parser_omp_sections_scope()
18852 c_parser_omp_sections (location_t loc, c_parser *parser, in c_parser_omp_sections() argument
18862 clauses = c_parser_omp_all_clauses (parser, mask, p_name, cclauses == NULL); in c_parser_omp_sections()
18870 ret = c_parser_omp_sections_scope (loc, parser); in c_parser_omp_sections()
18906 c_parser_omp_parallel (location_t loc, c_parser *parser, in c_parser_omp_parallel() argument
18919 if (c_parser_next_token_is_keyword (parser, RID_FOR)) in c_parser_omp_parallel()
18925 c_parser_consume_token (parser); in c_parser_omp_parallel()
18927 return c_parser_omp_for (loc, parser, p_name, mask, cclauses, if_p); in c_parser_omp_parallel()
18929 tree ret = c_parser_omp_for (loc, parser, p_name, mask, cclauses, if_p); in c_parser_omp_parallel()
18945 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_parallel()
18948 else if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_parallel()
18950 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_parallel()
18956 c_parser_consume_token (parser); in c_parser_omp_parallel()
18958 return c_parser_omp_master (loc, parser, p_name, mask, cclauses, in c_parser_omp_parallel()
18961 tree ret = c_parser_omp_master (loc, parser, p_name, mask, cclauses, in c_parser_omp_parallel()
18977 c_parser_consume_token (parser); in c_parser_omp_parallel()
18979 return c_parser_omp_loop (loc, parser, p_name, mask, cclauses, in c_parser_omp_parallel()
18982 tree ret = c_parser_omp_loop (loc, parser, p_name, mask, cclauses, in c_parser_omp_parallel()
18995 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_parallel()
19003 c_parser_consume_token (parser); in c_parser_omp_parallel()
19005 c_parser_omp_sections (loc, parser, p_name, mask, cclauses); in c_parser_omp_parallel()
19015 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_parallel()
19019 clauses = c_parser_omp_all_clauses (parser, mask, p_name, cclauses == NULL); in c_parser_omp_parallel()
19027 c_parser_statement (parser, if_p); in c_parser_omp_parallel()
19047 c_parser_omp_single (location_t loc, c_parser *parser, bool *if_p) in c_parser_omp_single() argument
19054 = c_parser_omp_all_clauses (parser, OMP_SINGLE_CLAUSE_MASK, in c_parser_omp_single()
19056 OMP_SINGLE_BODY (stmt) = c_parser_omp_structured_block (parser, if_p); in c_parser_omp_single()
19081 c_parser_omp_task (location_t loc, c_parser *parser, bool *if_p) in c_parser_omp_task() argument
19085 clauses = c_parser_omp_all_clauses (parser, OMP_TASK_CLAUSE_MASK, in c_parser_omp_task()
19089 c_parser_statement (parser, if_p); in c_parser_omp_task()
19104 c_parser_omp_taskwait (c_parser *parser) in c_parser_omp_taskwait() argument
19106 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_taskwait()
19107 c_parser_consume_pragma (parser); in c_parser_omp_taskwait()
19110 = c_parser_omp_all_clauses (parser, OMP_TASKWAIT_CLAUSE_MASK, in c_parser_omp_taskwait()
19131 c_parser_omp_taskyield (c_parser *parser) in c_parser_omp_taskyield() argument
19133 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_taskyield()
19134 c_parser_consume_pragma (parser); in c_parser_omp_taskyield()
19135 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_taskyield()
19151 c_parser_omp_taskgroup (location_t loc, c_parser *parser, bool *if_p) in c_parser_omp_taskgroup() argument
19153 tree clauses = c_parser_omp_all_clauses (parser, OMP_TASKGROUP_CLAUSE_MASK, in c_parser_omp_taskgroup()
19156 tree body = c_parser_omp_structured_block (parser, if_p); in c_parser_omp_taskgroup()
19174 c_parser_omp_cancel (c_parser *parser) in c_parser_omp_cancel() argument
19176 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_cancel()
19178 c_parser_consume_pragma (parser); in c_parser_omp_cancel()
19179 tree clauses = c_parser_omp_all_clauses (parser, OMP_CANCEL_CLAUSE_MASK, in c_parser_omp_cancel()
19198 c_parser_omp_cancellation_point (c_parser *parser, enum pragma_context context) in c_parser_omp_cancellation_point() argument
19200 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_cancellation_point()
19204 c_parser_consume_pragma (parser); in c_parser_omp_cancellation_point()
19205 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_cancellation_point()
19207 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_cancellation_point()
19210 c_parser_consume_token (parser); in c_parser_omp_cancellation_point()
19216 c_parser_error (parser, "expected %<point%>"); in c_parser_omp_cancellation_point()
19217 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_cancellation_point()
19228 c_parser_error (parser, "expected declaration specifiers"); in c_parser_omp_cancellation_point()
19229 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_cancellation_point()
19234 = c_parser_omp_all_clauses (parser, OMP_CANCELLATION_POINT_CLAUSE_MASK, in c_parser_omp_cancellation_point()
19252 c_parser_omp_distribute (location_t loc, c_parser *parser, in c_parser_omp_distribute() argument
19261 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_distribute()
19263 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_distribute()
19276 c_parser_consume_token (parser); in c_parser_omp_distribute()
19280 return c_parser_omp_simd (loc, parser, p_name, mask, cclauses, in c_parser_omp_distribute()
19283 return c_parser_omp_parallel (loc, parser, p_name, mask, in c_parser_omp_distribute()
19288 ret = c_parser_omp_simd (loc, parser, p_name, mask, cclauses, in c_parser_omp_distribute()
19291 ret = c_parser_omp_parallel (loc, parser, p_name, mask, cclauses, in c_parser_omp_distribute()
19307 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_distribute()
19311 clauses = c_parser_omp_all_clauses (parser, mask, p_name, cclauses == NULL); in c_parser_omp_distribute()
19319 ret = c_parser_omp_for_loop (loc, parser, OMP_DISTRIBUTE, clauses, NULL, in c_parser_omp_distribute()
19341 c_parser_omp_teams (location_t loc, c_parser *parser, in c_parser_omp_teams() argument
19350 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_teams()
19352 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_teams()
19359 c_parser_consume_token (parser); in c_parser_omp_teams()
19361 return c_parser_omp_distribute (loc, parser, p_name, mask, in c_parser_omp_teams()
19364 ret = c_parser_omp_distribute (loc, parser, p_name, mask, cclauses, in c_parser_omp_teams()
19384 c_parser_consume_token (parser); in c_parser_omp_teams()
19386 return c_parser_omp_loop (loc, parser, p_name, mask, cclauses, in c_parser_omp_teams()
19389 ret = c_parser_omp_loop (loc, parser, p_name, mask, cclauses, if_p); in c_parser_omp_teams()
19405 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_teams()
19409 clauses = c_parser_omp_all_clauses (parser, mask, p_name, cclauses == NULL); in c_parser_omp_teams()
19420 add_stmt (c_parser_omp_structured_block (parser, if_p)); in c_parser_omp_teams()
19439 c_parser_omp_target_data (location_t loc, c_parser *parser, bool *if_p) in c_parser_omp_target_data() argument
19442 = c_parser_omp_all_clauses (parser, OMP_TARGET_DATA_CLAUSE_MASK, in c_parser_omp_target_data()
19492 add_stmt (c_parser_omp_structured_block (parser, if_p)); in c_parser_omp_target_data()
19511 c_parser_omp_target_update (location_t loc, c_parser *parser, in c_parser_omp_target_update() argument
19518 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_target_update()
19523 = c_parser_omp_all_clauses (parser, OMP_TARGET_UPDATE_CLAUSE_MASK, in c_parser_omp_target_update()
19553 c_parser_omp_target_enter_data (location_t loc, c_parser *parser, in c_parser_omp_target_enter_data() argument
19557 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_target_enter_data()
19559 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_target_enter_data()
19562 c_parser_consume_token (parser); in c_parser_omp_target_enter_data()
19568 c_parser_error (parser, "expected %<data%>"); in c_parser_omp_target_enter_data()
19569 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_target_enter_data()
19577 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_target_enter_data()
19582 = c_parser_omp_all_clauses (parser, OMP_TARGET_ENTER_DATA_CLAUSE_MASK, in c_parser_omp_target_enter_data()
19637 c_parser_omp_target_exit_data (location_t loc, c_parser *parser, in c_parser_omp_target_exit_data() argument
19641 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_target_exit_data()
19643 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_target_exit_data()
19646 c_parser_consume_token (parser); in c_parser_omp_target_exit_data()
19652 c_parser_error (parser, "expected %<data%>"); in c_parser_omp_target_exit_data()
19653 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_target_exit_data()
19661 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_target_exit_data()
19666 = c_parser_omp_all_clauses (parser, OMP_TARGET_EXIT_DATA_CLAUSE_MASK, in c_parser_omp_target_exit_data()
19729 c_parser_omp_target (c_parser *parser, enum pragma_context context, bool *if_p) in c_parser_omp_target() argument
19731 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_target()
19732 c_parser_consume_pragma (parser); in c_parser_omp_target()
19737 c_parser_error (parser, "expected declaration specifiers"); in c_parser_omp_target()
19738 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_target()
19746 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_target()
19748 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_target()
19763 c_parser_consume_token (parser); in c_parser_omp_target()
19771 stmt = c_parser_omp_teams (loc, parser, p_name, in c_parser_omp_target()
19776 stmt = c_parser_omp_parallel (loc, parser, p_name, in c_parser_omp_target()
19781 stmt = c_parser_omp_simd (loc, parser, p_name, in c_parser_omp_target()
19795 ret = c_parser_omp_teams (loc, parser, p_name, in c_parser_omp_target()
19800 ret = c_parser_omp_parallel (loc, parser, p_name, in c_parser_omp_target()
19805 ret = c_parser_omp_simd (loc, parser, p_name, in c_parser_omp_target()
19853 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_target()
19858 c_parser_consume_token (parser); in c_parser_omp_target()
19859 c_parser_omp_target_data (loc, parser, if_p); in c_parser_omp_target()
19864 c_parser_consume_token (parser); in c_parser_omp_target()
19865 c_parser_omp_target_enter_data (loc, parser, context); in c_parser_omp_target()
19870 c_parser_consume_token (parser); in c_parser_omp_target()
19871 c_parser_omp_target_exit_data (loc, parser, context); in c_parser_omp_target()
19876 c_parser_consume_token (parser); in c_parser_omp_target()
19877 return c_parser_omp_target_update (loc, parser, context); in c_parser_omp_target()
19882 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_target()
19890 = c_parser_omp_all_clauses (parser, OMP_TARGET_CLAUSE_MASK, in c_parser_omp_target()
19895 add_stmt (c_parser_omp_structured_block (parser, if_p)); in c_parser_omp_target()
19946 c_parser_omp_declare_simd (c_parser *parser, enum pragma_context context) in c_parser_omp_declare_simd() argument
19948 c_token *token = c_parser_peek_token (parser); in c_parser_omp_declare_simd()
19955 while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) in c_parser_omp_declare_simd()
19957 c_token *token = c_parser_peek_token (parser); in c_parser_omp_declare_simd()
19960 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_simd()
19964 c_parser_consume_token (parser); in c_parser_omp_declare_simd()
19966 clauses.safe_push (*c_parser_peek_token (parser)); in c_parser_omp_declare_simd()
19967 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_simd()
19969 while (c_parser_next_token_is (parser, CPP_PRAGMA)) in c_parser_omp_declare_simd()
19971 if (c_parser_peek_token (parser)->pragma_kind != PRAGMA_OMP_DECLARE in c_parser_omp_declare_simd()
19972 || c_parser_peek_2nd_token (parser)->type != CPP_NAME in c_parser_omp_declare_simd()
19973 || c_parser_peek_2nd_token (parser)->value != kind) in c_parser_omp_declare_simd()
19981 c_parser_consume_pragma (parser); in c_parser_omp_declare_simd()
19982 while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) in c_parser_omp_declare_simd()
19984 c_token *token = c_parser_peek_token (parser); in c_parser_omp_declare_simd()
19987 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_simd()
19991 c_parser_consume_token (parser); in c_parser_omp_declare_simd()
19993 clauses.safe_push (*c_parser_peek_token (parser)); in c_parser_omp_declare_simd()
19994 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_simd()
20007 if (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_omp_declare_simd()
20008 && c_parser_peek_token (parser)->keyword == RID_EXTENSION) in c_parser_omp_declare_simd()
20012 c_parser_consume_token (parser); in c_parser_omp_declare_simd()
20013 while (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_omp_declare_simd()
20014 && c_parser_peek_token (parser)->keyword == RID_EXTENSION); in c_parser_omp_declare_simd()
20015 c_parser_declaration_or_fndef (parser, true, true, true, false, true, in c_parser_omp_declare_simd()
20020 c_parser_declaration_or_fndef (parser, true, true, true, false, true, in c_parser_omp_declare_simd()
20031 if (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_omp_declare_simd()
20032 && c_parser_peek_token (parser)->keyword == RID_EXTENSION) in c_parser_omp_declare_simd()
20036 c_parser_consume_token (parser); in c_parser_omp_declare_simd()
20037 while (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_omp_declare_simd()
20038 && c_parser_peek_token (parser)->keyword == RID_EXTENSION); in c_parser_omp_declare_simd()
20039 if (c_parser_next_tokens_start_declaration (parser)) in c_parser_omp_declare_simd()
20041 c_parser_declaration_or_fndef (parser, true, true, true, true, in c_parser_omp_declare_simd()
20048 else if (c_parser_next_tokens_start_declaration (parser)) in c_parser_omp_declare_simd()
20050 c_parser_declaration_or_fndef (parser, true, true, true, true, true, in c_parser_omp_declare_simd()
20082 c_parser_omp_context_selector (c_parser *parser, tree set, tree parms) in c_parser_omp_context_selector() argument
20088 if (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_omp_context_selector()
20089 || c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_context_selector()
20090 selector = c_parser_peek_token (parser)->value; in c_parser_omp_context_selector()
20093 c_parser_error (parser, "expected trait selector name"); in c_parser_omp_context_selector()
20145 error_at (c_parser_peek_token (parser)->location, in c_parser_omp_context_selector()
20149 c_parser_consume_token (parser); in c_parser_omp_context_selector()
20164 c_parser_consume_token (parser); in c_parser_omp_context_selector()
20166 if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_omp_context_selector()
20170 error_at (c_parser_peek_token (parser)->location, in c_parser_omp_context_selector()
20177 parens.require_open (parser); in c_parser_omp_context_selector()
20179 c_token *token = c_parser_peek_token (parser); in c_parser_omp_context_selector()
20181 && c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_context_selector()
20183 && c_parser_peek_2nd_token (parser)->type == CPP_OPEN_PAREN) in c_parser_omp_context_selector()
20185 c_parser_consume_token (parser); in c_parser_omp_context_selector()
20188 parens2.require_open (parser); in c_parser_omp_context_selector()
20189 tree score = c_parser_expr_no_commas (parser, NULL).value; in c_parser_omp_context_selector()
20190 parens2.skip_until_found_close (parser); in c_parser_omp_context_selector()
20191 c_parser_require (parser, CPP_COLON, "expected %<:%>"); in c_parser_omp_context_selector()
20207 token = c_parser_peek_token (parser); in c_parser_omp_context_selector()
20216 t = c_parser_expr_no_commas (parser, NULL).value; in c_parser_omp_context_selector()
20234 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_context_selector()
20235 c_parser_consume_token (parser); in c_parser_omp_context_selector()
20242 if (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_omp_context_selector()
20243 || c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_context_selector()
20245 tree prop = c_parser_peek_token (parser)->value; in c_parser_omp_context_selector()
20246 c_parser_consume_token (parser); in c_parser_omp_context_selector()
20251 c_parser_error (parser, "expected identifier"); in c_parser_omp_context_selector()
20259 if (c_parser_next_token_is (parser, CPP_KEYWORD) in c_parser_omp_context_selector()
20260 || c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_context_selector()
20262 prop = c_parser_peek_token (parser)->value; in c_parser_omp_context_selector()
20263 c_parser_consume_token (parser); in c_parser_omp_context_selector()
20265 else if (c_parser_next_token_is (parser, CPP_STRING)) in c_parser_omp_context_selector()
20266 value = c_parser_string_literal (parser, false, in c_parser_omp_context_selector()
20270 c_parser_error (parser, "expected identifier or " in c_parser_omp_context_selector()
20277 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_context_selector()
20278 c_parser_consume_token (parser); in c_parser_omp_context_selector()
20285 t = c_parser_expr_no_commas (parser, NULL).value; in c_parser_omp_context_selector()
20309 c = c_parser_omp_all_clauses (parser, in c_parser_omp_context_selector()
20322 parens.skip_until_found_close (parser); in c_parser_omp_context_selector()
20329 c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"); in c_parser_omp_context_selector()
20335 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_context_selector()
20336 c_parser_consume_token (parser); in c_parser_omp_context_selector()
20359 c_parser_omp_context_selector_specification (c_parser *parser, tree parms) in c_parser_omp_context_selector_specification() argument
20365 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_context_selector_specification()
20366 setp = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_context_selector_specification()
20390 c_parser_error (parser, "expected %<construct%>, %<device%>, " in c_parser_omp_context_selector_specification()
20395 tree set = c_parser_peek_token (parser)->value; in c_parser_omp_context_selector_specification()
20396 c_parser_consume_token (parser); in c_parser_omp_context_selector_specification()
20398 if (!c_parser_require (parser, CPP_EQ, "expected %<=%>")) in c_parser_omp_context_selector_specification()
20402 if (!braces.require_open (parser)) in c_parser_omp_context_selector_specification()
20405 tree selectors = c_parser_omp_context_selector (parser, set, parms); in c_parser_omp_context_selector_specification()
20411 braces.skip_until_found_close (parser); in c_parser_omp_context_selector_specification()
20413 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_context_selector_specification()
20414 c_parser_consume_token (parser); in c_parser_omp_context_selector_specification()
20429 c_finish_omp_declare_variant (c_parser *parser, tree fndecl, tree parms) in c_finish_omp_declare_variant() argument
20432 if (!parens.require_open (parser)) in c_finish_omp_declare_variant()
20435 c_parser_skip_to_pragma_eol (parser, false); in c_finish_omp_declare_variant()
20439 if (c_parser_next_token_is_not (parser, CPP_NAME) in c_finish_omp_declare_variant()
20440 || c_parser_peek_token (parser)->id_kind != C_ID_ID) in c_finish_omp_declare_variant()
20442 c_parser_error (parser, "expected identifier"); in c_finish_omp_declare_variant()
20446 c_token *token = c_parser_peek_token (parser); in c_finish_omp_declare_variant()
20455 c_parser_consume_token (parser); in c_finish_omp_declare_variant()
20457 parens.require_close (parser); in c_finish_omp_declare_variant()
20460 location_t match_loc = c_parser_peek_token (parser)->location; in c_finish_omp_declare_variant()
20461 if (c_parser_next_token_is (parser, CPP_NAME)) in c_finish_omp_declare_variant()
20462 clause = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_finish_omp_declare_variant()
20465 c_parser_error (parser, "expected %<match%>"); in c_finish_omp_declare_variant()
20469 c_parser_consume_token (parser); in c_finish_omp_declare_variant()
20471 if (!parens.require_open (parser)) in c_finish_omp_declare_variant()
20477 tree ctx = c_parser_omp_context_selector_specification (parser, parms); in c_finish_omp_declare_variant()
20522 parens.require_close (parser); in c_finish_omp_declare_variant()
20523 c_parser_skip_to_pragma_eol (parser); in c_finish_omp_declare_variant()
20531 c_finish_omp_declare_simd (c_parser *parser, tree fndecl, tree parms, in c_finish_omp_declare_simd() argument
20563 unsigned int tokens_avail = parser->tokens_avail; in c_finish_omp_declare_simd()
20564 gcc_assert (parser->tokens == &parser->tokens_buf[0]); in c_finish_omp_declare_simd()
20566 parser->tokens = clauses.address (); in c_finish_omp_declare_simd()
20567 parser->tokens_avail = clauses.length (); in c_finish_omp_declare_simd()
20570 while (parser->tokens_avail > 3) in c_finish_omp_declare_simd()
20572 c_token *token = c_parser_peek_token (parser); in c_finish_omp_declare_simd()
20575 c_parser_consume_token (parser); in c_finish_omp_declare_simd()
20576 parser->in_pragma = true; in c_finish_omp_declare_simd()
20581 c = c_parser_omp_all_clauses (parser, OMP_DECLARE_SIMD_CLAUSE_MASK, in c_finish_omp_declare_simd()
20593 c_finish_omp_declare_variant (parser, fndecl, parms); in c_finish_omp_declare_simd()
20597 parser->tokens = &parser->tokens_buf[0]; in c_finish_omp_declare_simd()
20598 parser->tokens_avail = tokens_avail; in c_finish_omp_declare_simd()
20620 c_parser_omp_declare_target (c_parser *parser) in c_parser_omp_declare_target() argument
20625 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_declare_target()
20626 clauses = c_parser_omp_all_clauses (parser, OMP_DECLARE_TARGET_CLAUSE_MASK, in c_parser_omp_declare_target()
20628 else if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) in c_parser_omp_declare_target()
20630 clauses = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_TO_DECLARE, in c_parser_omp_declare_target()
20633 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_target()
20637 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_target()
20716 c_parser_omp_end_declare_target (c_parser *parser) in c_parser_omp_end_declare_target() argument
20718 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_end_declare_target()
20719 c_parser_consume_pragma (parser); in c_parser_omp_end_declare_target()
20720 if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_end_declare_target()
20721 && strcmp (IDENTIFIER_POINTER (c_parser_peek_token (parser)->value), in c_parser_omp_end_declare_target()
20724 c_parser_consume_token (parser); in c_parser_omp_end_declare_target()
20725 if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_end_declare_target()
20726 && strcmp (IDENTIFIER_POINTER (c_parser_peek_token (parser)->value), in c_parser_omp_end_declare_target()
20728 c_parser_consume_token (parser); in c_parser_omp_end_declare_target()
20731 c_parser_error (parser, "expected %<target%>"); in c_parser_omp_end_declare_target()
20732 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_end_declare_target()
20738 c_parser_error (parser, "expected %<declare%>"); in c_parser_omp_end_declare_target()
20739 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_end_declare_target()
20742 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_end_declare_target()
20760 c_parser_omp_declare_reduction (c_parser *parser, enum pragma_context context) in c_parser_omp_declare_reduction() argument
20768 location_t rloc = c_parser_peek_token (parser)->location; in c_parser_omp_declare_reduction()
20776 if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) in c_parser_omp_declare_reduction()
20779 switch (c_parser_peek_token (parser)->type) in c_parser_omp_declare_reduction()
20807 p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_declare_reduction()
20818 reduc_id = c_parser_peek_token (parser)->value; in c_parser_omp_declare_reduction()
20821 c_parser_error (parser, in c_parser_omp_declare_reduction()
20831 c_parser_consume_token (parser); in c_parser_omp_declare_reduction()
20833 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) in c_parser_omp_declare_reduction()
20838 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_declare_reduction()
20839 struct c_type_name *ctype = c_parser_type_name (parser); in c_parser_omp_declare_reduction()
20883 if (c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_declare_reduction()
20884 c_parser_consume_token (parser); in c_parser_omp_declare_reduction()
20892 if (!c_parser_require (parser, CPP_COLON, "expected %<:%>") in c_parser_omp_declare_reduction()
20900 c_token *token = c_parser_peek_token (parser); in c_parser_omp_declare_reduction()
20903 c_parser_consume_token (parser); in c_parser_omp_declare_reduction()
20905 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_reduction()
20911 while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) in c_parser_omp_declare_reduction()
20913 c_token *token = c_parser_peek_token (parser); in c_parser_omp_declare_reduction()
20917 c_parser_consume_token (parser); in c_parser_omp_declare_reduction()
20919 clauses.safe_push (*c_parser_peek_token (parser)); in c_parser_omp_declare_reduction()
20920 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_reduction()
20933 tokens_avail = parser->tokens_avail; in c_parser_omp_declare_reduction()
20934 gcc_assert (parser->tokens == &parser->tokens_buf[0]); in c_parser_omp_declare_reduction()
20937 parser->tokens = clauses.address (); in c_parser_omp_declare_reduction()
20938 parser->tokens_avail = clauses.length (); in c_parser_omp_declare_reduction()
20939 parser->in_pragma = true; in c_parser_omp_declare_reduction()
20963 struct c_expr combiner = c_parser_expression (parser); in c_parser_omp_declare_reduction()
20968 if (!c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) in c_parser_omp_declare_reduction()
20970 else if (c_parser_next_token_is (parser, CPP_NAME) in c_parser_omp_declare_reduction()
20972 (c_parser_peek_token (parser)->value), in c_parser_omp_declare_reduction()
20975 c_parser_consume_token (parser); in c_parser_omp_declare_reduction()
20989 if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) in c_parser_omp_declare_reduction()
20991 else if (!c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_declare_reduction()
20993 c_parser_error (parser, "expected %<omp_priv%> or " in c_parser_omp_declare_reduction()
20998 (c_parser_peek_token (parser)->value), in c_parser_omp_declare_reduction()
21001 if (c_parser_peek_2nd_token (parser)->type != CPP_OPEN_PAREN in c_parser_omp_declare_reduction()
21002 || c_parser_peek_token (parser)->id_kind != C_ID_ID) in c_parser_omp_declare_reduction()
21004 c_parser_error (parser, "expected function-name %<(%>"); in c_parser_omp_declare_reduction()
21008 initializer = c_parser_postfix_expression (parser); in c_parser_omp_declare_reduction()
21029 c_parser_consume_token (parser); in c_parser_omp_declare_reduction()
21030 if (!c_parser_require (parser, CPP_EQ, "expected %<=%>")) in c_parser_omp_declare_reduction()
21035 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_declare_reduction()
21038 struct c_expr init = c_parser_initializer (parser); in c_parser_omp_declare_reduction()
21046 && !c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) in c_parser_omp_declare_reduction()
21052 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare_reduction()
21091 parser->tokens = &parser->tokens_buf[0]; in c_parser_omp_declare_reduction()
21092 parser->tokens_avail = tokens_avail; in c_parser_omp_declare_reduction()
21115 c_parser_omp_declare (c_parser *parser, enum pragma_context context) in c_parser_omp_declare() argument
21117 c_parser_consume_pragma (parser); in c_parser_omp_declare()
21118 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_declare()
21120 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_declare()
21125 c_parser_omp_declare_simd (parser, context); in c_parser_omp_declare()
21130 c_parser_consume_token (parser); in c_parser_omp_declare()
21131 c_parser_omp_declare_reduction (parser, context); in c_parser_omp_declare()
21136 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_declare()
21141 c_parser_consume_token (parser); in c_parser_omp_declare()
21142 c_parser_omp_declare_target (parser); in c_parser_omp_declare()
21149 c_parser_omp_declare_simd (parser, context); in c_parser_omp_declare()
21154 c_parser_error (parser, "expected %<simd%>, %<reduction%>, " in c_parser_omp_declare()
21156 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_declare()
21163 c_parser_omp_requires (c_parser *parser) in c_parser_omp_requires() argument
21168 c_parser_consume_pragma (parser); in c_parser_omp_requires()
21170 location_t loc = c_parser_peek_token (parser)->location; in c_parser_omp_requires()
21171 while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) in c_parser_omp_requires()
21173 if (!first && c_parser_next_token_is (parser, CPP_COMMA)) in c_parser_omp_requires()
21174 c_parser_consume_token (parser); in c_parser_omp_requires()
21178 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_requires()
21181 = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_requires()
21182 location_t cloc = c_parser_peek_token (parser)->location; in c_parser_omp_requires()
21195 c_parser_consume_token (parser); in c_parser_omp_requires()
21198 if (parens.require_open (parser)) in c_parser_omp_requires()
21200 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_requires()
21202 tree v = c_parser_peek_token (parser)->value; in c_parser_omp_requires()
21217 error_at (c_parser_peek_token (parser)->location, in c_parser_omp_requires()
21220 if (c_parser_peek_2nd_token (parser)->type in c_parser_omp_requires()
21222 c_parser_consume_token (parser); in c_parser_omp_requires()
21225 c_parser_consume_token (parser); in c_parser_omp_requires()
21227 parens.skip_until_found_close (parser); in c_parser_omp_requires()
21230 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_requires()
21243 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_requires()
21250 c_parser_consume_token (parser); in c_parser_omp_requires()
21291 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_requires()
21358 c_parser_omp_taskloop (location_t loc, c_parser *parser, in c_parser_omp_taskloop() argument
21371 if (c_parser_next_token_is (parser, CPP_NAME)) in c_parser_omp_taskloop()
21373 const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); in c_parser_omp_taskloop()
21380 c_parser_consume_token (parser); in c_parser_omp_taskloop()
21382 return c_parser_omp_simd (loc, parser, p_name, mask, cclauses, in c_parser_omp_taskloop()
21385 ret = c_parser_omp_simd (loc, parser, p_name, mask, cclauses, if_p); in c_parser_omp_taskloop()
21402 c_parser_skip_to_pragma_eol (parser, false); in c_parser_omp_taskloop()
21406 clauses = c_parser_omp_all_clauses (parser, mask, p_name, cclauses == NULL); in c_parser_omp_taskloop()
21415 ret = c_parser_omp_for_loop (loc, parser, OMP_TASKLOOP, clauses, NULL, if_p); in c_parser_omp_taskloop()
21425 c_parser_omp_construct (c_parser *parser, bool *if_p) in c_parser_omp_construct() argument
21433 loc = c_parser_peek_token (parser)->location; in c_parser_omp_construct()
21434 p_kind = c_parser_peek_token (parser)->pragma_kind; in c_parser_omp_construct()
21435 c_parser_consume_pragma (parser); in c_parser_omp_construct()
21440 c_parser_omp_atomic (loc, parser); in c_parser_omp_construct()
21444 stmt = c_parser_oacc_cache (loc, parser); in c_parser_omp_construct()
21447 stmt = c_parser_oacc_data (loc, parser, if_p); in c_parser_omp_construct()
21450 stmt = c_parser_oacc_host_data (loc, parser, if_p); in c_parser_omp_construct()
21456 stmt = c_parser_oacc_compute (loc, parser, p_kind, p_name, if_p); in c_parser_omp_construct()
21460 stmt = c_parser_oacc_loop (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21464 stmt = c_parser_oacc_wait (loc, parser, p_name); in c_parser_omp_construct()
21467 c_parser_omp_atomic (loc, parser); in c_parser_omp_construct()
21470 stmt = c_parser_omp_critical (loc, parser, if_p); in c_parser_omp_construct()
21474 stmt = c_parser_omp_distribute (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21478 stmt = c_parser_omp_for (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21482 stmt = c_parser_omp_loop (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21486 stmt = c_parser_omp_master (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21490 stmt = c_parser_omp_parallel (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21494 stmt = c_parser_omp_sections (loc, parser, p_name, mask, NULL); in c_parser_omp_construct()
21498 stmt = c_parser_omp_simd (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21501 stmt = c_parser_omp_single (loc, parser, if_p); in c_parser_omp_construct()
21504 stmt = c_parser_omp_task (loc, parser, if_p); in c_parser_omp_construct()
21507 stmt = c_parser_omp_taskgroup (loc, parser, if_p); in c_parser_omp_construct()
21511 stmt = c_parser_omp_taskloop (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21515 stmt = c_parser_omp_teams (loc, parser, p_name, mask, NULL, if_p); in c_parser_omp_construct()
21530 c_parser_omp_threadprivate (c_parser *parser) in c_parser_omp_threadprivate() argument
21535 c_parser_consume_pragma (parser); in c_parser_omp_threadprivate()
21536 loc = c_parser_peek_token (parser)->location; in c_parser_omp_threadprivate()
21537 vars = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ERROR, NULL); in c_parser_omp_threadprivate()
21577 c_parser_skip_to_pragma_eol (parser); in c_parser_omp_threadprivate()
21588 c_parser_transaction_attributes (c_parser *parser) in c_parser_transaction_attributes() argument
21590 if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) in c_parser_transaction_attributes()
21591 return c_parser_gnu_attributes (parser); in c_parser_transaction_attributes()
21593 if (!c_parser_next_token_is (parser, CPP_OPEN_SQUARE)) in c_parser_transaction_attributes()
21595 return c_parser_std_attribute_specifier (parser, true); in c_parser_transaction_attributes()
21609 c_parser_transaction (c_parser *parser, enum rid keyword) in c_parser_transaction() argument
21611 unsigned int old_in = parser->in_transaction; in c_parser_transaction()
21613 location_t loc = c_parser_peek_token (parser)->location; in c_parser_transaction()
21618 && c_parser_next_token_is_keyword (parser, keyword)); in c_parser_transaction()
21619 c_parser_consume_token (parser); in c_parser_transaction()
21625 attrs = c_parser_transaction_attributes (parser); in c_parser_transaction()
21633 parser->in_transaction = new_in; in c_parser_transaction()
21634 stmt = c_parser_compound_statement (parser); in c_parser_transaction()
21635 parser->in_transaction = old_in; in c_parser_transaction()
21657 c_parser_transaction_expression (c_parser *parser, enum rid keyword) in c_parser_transaction_expression() argument
21660 unsigned int old_in = parser->in_transaction; in c_parser_transaction_expression()
21662 location_t loc = c_parser_peek_token (parser)->location; in c_parser_transaction_expression()
21667 && c_parser_next_token_is_keyword (parser, keyword)); in c_parser_transaction_expression()
21668 c_parser_consume_token (parser); in c_parser_transaction_expression()
21674 attrs = c_parser_transaction_attributes (parser); in c_parser_transaction_expression()
21679 parser->in_transaction = this_in; in c_parser_transaction_expression()
21681 if (parens.require_open (parser)) in c_parser_transaction_expression()
21683 tree expr = c_parser_expression (parser).value; in c_parser_transaction_expression()
21690 if (!parens.require_close (parser)) in c_parser_transaction_expression()
21692 c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL); in c_parser_transaction_expression()
21703 parser->in_transaction = old_in; in c_parser_transaction_expression()
21725 c_parser_transaction_cancel (c_parser *parser) in c_parser_transaction_cancel() argument
21727 location_t loc = c_parser_peek_token (parser)->location; in c_parser_transaction_cancel()
21731 gcc_assert (c_parser_next_token_is_keyword (parser, RID_TRANSACTION_CANCEL)); in c_parser_transaction_cancel()
21732 c_parser_consume_token (parser); in c_parser_transaction_cancel()
21734 attrs = c_parser_transaction_attributes (parser); in c_parser_transaction_cancel()
21744 else if (parser->in_transaction & TM_STMT_ATTR_RELAXED) in c_parser_transaction_cancel()
21752 if ((parser->in_transaction & TM_STMT_ATTR_OUTER) == 0 in c_parser_transaction_cancel()
21761 else if (parser->in_transaction == 0) in c_parser_transaction_cancel()
21822 c_parser_parse_rtl_body (c_parser *parser, char *start_with_pass) in c_parser_parse_rtl_body() argument
21824 if (!c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) in c_parser_parse_rtl_body()
21827 return c_parser_peek_token (parser)->location; in c_parser_parse_rtl_body()
21830 location_t start_loc = c_parser_peek_token (parser)->location; in c_parser_parse_rtl_body()
21837 switch (c_parser_peek_token (parser)->type) in c_parser_parse_rtl_body()
21849 return c_parser_peek_token (parser)->location; in c_parser_parse_rtl_body()
21853 c_parser_consume_token (parser); in c_parser_parse_rtl_body()
21858 location_t end_loc = c_parser_peek_token (parser)->location; in c_parser_parse_rtl_body()
21861 c_parser_consume_token (parser); in c_parser_parse_rtl_body()