bool
potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
tsubst_flags_t flags);
-inline tree
-get_nth_callarg (tree t, int n);
tree
unshare_constructor (tree t MEM_STAT_DECL);
void
tree type = parms ? TREE_TYPE (parms) : void_type_node;
if (parms && DECL_BY_REFERENCE (parms))
type = TREE_TYPE (type);
- x = get_nth_callarg (t, i);
+ x = CALL_EXPR_ARG (t, i);
if (TREE_ADDRESSABLE (type))
/* Undo convert_for_arg_passing work here. */
return (DECL_DECLARED_CONSTEXPR_P (t));
}
-// forked from gcc/cp/constexpr.cc get_nth_callarg
-
-/* We have an expression tree T that represents a call, either CALL_EXPR.
- Return the Nth argument. */
-
-inline tree
-get_nth_callarg (tree t, int n)
-{
- return CALL_EXPR_ARG (t, n);
-}
-
// forked from gcc/cp/constexpr.cc var_in_maybe_constexpr_fn
/* True if T was declared in a function that might be constexpr: either a
if (DECL_NONSTATIC_MEMBER_FUNCTION_P (fun)
&& !DECL_CONSTRUCTOR_P (fun))
{
- tree x = get_nth_callarg (t, 0);
+ tree x = CALL_EXPR_ARG (t, 0);
/* Don't require an immediately constant value, as
constexpr substitution might not use the value. */
}
for (; i < nargs; ++i)
{
- tree x = get_nth_callarg (t, i);
+ tree x = CALL_EXPR_ARG (t, i);
/* In a template, reference arguments haven't been converted to
REFERENCE_TYPE and we might not even know if the parameter
is a reference, so accept lvalue constants too. */