FreeBSD/contrib/gcc/cp/call.c
/* Convert EXPR to TYPE.  Return the converted expression.

   Note that we allow bad conversions here because by the time we get to
   this point we are committed to doing the conversion.  If we end up
   doing a bad conversion, convert_like will complain.  */
Convert EXPR to TYPE.  Return the converted expression.
Note that we allow bad conversions here because by the time we get to
this point we are committed to doing the conversion.  If we end up
doing a bad conversion, convert_like will complain.
Convert EXPR to TYPE . Return the converted expression . Note that we allow bad conversions here because by the time we get to this point we are committed to doing the conversion . If we end up doing a bad conversion convert_like will complain .
tree
perform_implicit_conversion (tree type, tree expr)
{
  conversion *conv;
  void *p;
  if (error_operand_p (expr))
    return error_mark_node;
  p = conversion_obstack_alloc (0);
  conv = implicit_conversion (type, TREE_TYPE (expr), expr,
			      false,
			      LOOKUP_NORMAL);
  if (!conv)
    {
      error ("could not convert %qE to %qT", expr, type);
      expr = error_mark_node;
    }
  else if (processing_template_decl)
    {
      if (TREE_TYPE (expr) != type)
	expr = build_nop (type, expr);
    }
  else
    expr = convert_like (conv, expr);
  obstack_free (&conversion_obstack, p);
  return expr;
}
tree perform_implicit_conversion ( tree type , tree expr ) { conversion * conv ; void * p ; if ( error_operand_p ( expr ) ) return error_mark_node ; p = conversion_obstack_alloc ( 0 ) ; conv = implicit_conversion ( type , TREE_TYPE ( expr ) , expr , false , LOOKUP_NORMAL ) ; if ( ! conv ) { error ( " " , expr , type ) ; expr = error_mark_node ; } else if ( processing_template_decl ) { if ( TREE_TYPE ( expr ) != type ) expr = build_nop ( type , expr ) ; } else expr = convert_like ( conv , expr ) ; obstack_free ( & conversion_obstack , p ) ; return expr ; }
Convert EXPR to TYPE.
Convert EXPR to TYPE .
/* Get the high-water mark for the CONVERSION_OBSTACK.  */ /*c_cast_p=*/ /* In a template, we are only concerned about determining the
	 type of non-dependent expressions, so we do not have to
	 perform the actual conversion.  */ /* Free all the conversions we allocated.  */