FreeBSD/contrib/gcc/c-common.c
/* A helper function for resolve_overloaded_builtin.  Adds casts to
   PARAMS to make arguments match up with those of FUNCTION.  Drops
   the variadic arguments at the end.  Returns false if some error
   was encountered; true on success.  */
A helper function for resolve_overloaded_builtin.  Adds casts to
PARAMS to make arguments match up with those of FUNCTION.  Drops
the variadic arguments at the end.  Returns false if some error
was encountered; true on success.
A helper function for resolve_overloaded_builtin . Adds casts to PARAMS to make arguments match up with those of FUNCTION . Drops the variadic arguments at the end . Returns false if some error was encountered ; true on success .
static bool
sync_resolve_params (tree orig_function, tree function, tree params)
{
  tree arg_types = TYPE_ARG_TYPES (TREE_TYPE (function));
  tree ptype;
  int number;
  arg_types = TREE_CHAIN (arg_types);
  ptype = TREE_TYPE (TREE_TYPE (TREE_VALUE (params)));
  number = 2;
  while (arg_types != void_list_node)
    {
      tree val;
      params = TREE_CHAIN (params);
      if (params == NULL)
	{
	  error ("too few arguments to function %qE", orig_function);
	  return false;
	}
      val = TREE_VALUE (params);
      val = convert (ptype, val);
      val = convert (TREE_VALUE (arg_types), val);
      TREE_VALUE (params) = val;
      arg_types = TREE_CHAIN (arg_types);
      number++;
    }
  TREE_CHAIN (params) = NULL;
  return true;
}
static bool sync_resolve_params ( tree orig_function , tree function , tree params ) { tree arg_types = TYPE_ARG_TYPES ( TREE_TYPE ( function ) ) ; tree ptype ; int number ; arg_types = TREE_CHAIN ( arg_types ) ; ptype = TREE_TYPE ( TREE_TYPE ( TREE_VALUE ( params ) ) ) ; number = 2 ; while ( arg_types != void_list_node ) { tree val ; params = TREE_CHAIN ( params ) ; if ( params == NULL ) { error ( " " , orig_function ) ; return false ; } val = TREE_VALUE ( params ) ; val = convert ( ptype , val ) ; val = convert ( TREE_VALUE ( arg_types ) , val ) ; TREE_VALUE ( params ) = val ; arg_types = TREE_CHAIN ( arg_types ) ; number ++ ; } TREE_CHAIN ( params ) = NULL ; return true ; }
A helper function for resolve_overloaded_builtin.
A helper function for resolve_overloaded_builtin .
/* We've declared the implementation functions to use "volatile void *"
     as the pointer parameter, so we shouldn't get any complaints from the
     call to check_function_arguments what ever type the user used.  */ /* For the rest of the values, we need to cast these to FTYPE, so that we
     don't get warnings for passing pointer types, etc.  */ /* ??? Ideally for the first conversion we'd use convert_for_assignment
	 so that we get warnings for anything that doesn't match the pointer
	 type.  This isn't portable across the C and C++ front ends atm.  */ /* The definition of these primitives is variadic, with the remaining
     being "an optional list of variables protected by the memory barrier".
     No clue what that's supposed to mean, precisely, but we consider all
     call-clobbered variables to be protected so we're safe.  */