m3-sys/m3cc/gcc-apple/gcc/c-parser.c
/* OpenMP 2.5:
   variable-list:
     identifier
     variable-list , identifier

   If KIND is nonzero, create the appropriate node and install the decl
   in OMP_CLAUSE_DECL and add the node to the head of the list.

   If KIND is zero, create a TREE_LIST with the decl in TREE_PURPOSE;
   return the list created.  */
OpenMP 2.5:
variable-list:
identifier
variable-list , identifier

If KIND is nonzero, create the appropriate node and install the decl
in OMP_CLAUSE_DECL and add the node to the head of the list.

If KIND is zero, create a TREE_LIST with the decl in TREE_PURPOSE;
return the list created.
OpenMP 2 . 5 : variable - list : identifier variable - list identifier If KIND is nonzero create the appropriate node and install the decl in OMP_CLAUSE_DECL and add the node to the head of the list . If KIND is zero create a TREE_LIST with the decl in TREE_PURPOSE ; return the list created .
static tree
c_parser_omp_variable_list (c_parser *parser, enum omp_clause_code kind,
                            tree list)
{
  if (c_parser_next_token_is_not (parser, CPP_NAME)
      || c_parser_peek_token (parser)->id_kind != C_ID_ID)
    c_parser_error (parser, "expected identifier");
  while (c_parser_next_token_is (parser, CPP_NAME)
	 && c_parser_peek_token (parser)->id_kind == C_ID_ID)
    {
      tree t = lookup_name (c_parser_peek_token (parser)->value);
      if (t == NULL_TREE)
	undeclared_variable (c_parser_peek_token (parser)->value,
			     c_parser_peek_token (parser)->location);
      else if (t == error_mark_node)
	;
      else if (kind != 0)
	{
	  tree u = build_omp_clause (kind);
	  OMP_CLAUSE_DECL (u) = t;
	  OMP_CLAUSE_CHAIN (u) = list;
	  list = u;
	}
      else
	list = tree_cons (t, NULL_TREE, list);
      c_parser_consume_token (parser);
      if (c_parser_next_token_is_not (parser, CPP_COMMA))
	break;
      c_parser_consume_token (parser);
    }
  return list;
}
static tree c_parser_omp_variable_list ( c_parser * parser , enum omp_clause_code kind , tree list ) { if ( c_parser_next_token_is_not ( parser , CPP_NAME ) || c_parser_peek_token ( parser ) -> id_kind != C_ID_ID ) c_parser_error ( parser , " " ) ; while ( c_parser_next_token_is ( parser , CPP_NAME ) && c_parser_peek_token ( parser ) -> id_kind == C_ID_ID ) { tree t = lookup_name ( c_parser_peek_token ( parser ) -> value ) ; if ( t == NULL_TREE ) undeclared_variable ( c_parser_peek_token ( parser ) -> value , c_parser_peek_token ( parser ) -> location ) ; else if ( t == error_mark_node ) ; else if ( kind != 0 ) { tree u = build_omp_clause ( kind ) ; OMP_CLAUSE_DECL ( u ) = t ; OMP_CLAUSE_CHAIN ( u ) = list ; list = u ; } else list = tree_cons ( t , NULL_TREE , list ) ; c_parser_consume_token ( parser ) ; if ( c_parser_next_token_is_not ( parser , CPP_COMMA ) ) break ; c_parser_consume_token ( parser ) ; } return list ; }
OpenMP 2.5:
variable-list:
identifier
variable-list , identifier
OpenMP 2 . 5 : variable - list : identifier variable - list identifier