aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/semantics.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r--gcc/cp/semantics.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 337b637..0183239 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1987,7 +1987,15 @@ finish_call_expr (tree fn, tree args, bool disallow_virtual, bool koenig_p,
if (TREE_CODE (fn) == FUNCTION_DECL
&& (DECL_BUILT_IN_CLASS (fn) == BUILT_IN_NORMAL
|| DECL_BUILT_IN_CLASS (fn) == BUILT_IN_MD))
- result = resolve_overloaded_builtin (fn, args);
+ {
+ VEC(tree,gc)* vec = VEC_alloc (tree, gc, list_length (args));
+ tree p;
+
+ for (p = args; p != NULL_TREE; p = TREE_CHAIN (p))
+ VEC_quick_push (tree, vec, TREE_VALUE (p));
+ result = resolve_overloaded_builtin (fn, vec);
+ VEC_free (tree, gc, vec);
+ }
if (!result)
/* A call to a namespace-scope function. */
@@ -4121,7 +4129,7 @@ handle_omp_for_class_iterator (int i, location_t locus, tree declv, tree initv,
cond = cp_build_binary_op (elocus,
TREE_CODE (cond), decl, diff,
tf_warning_or_error);
- incr = build_modify_expr (elocus, decl, PLUS_EXPR, incr);
+ incr = build_modify_expr (elocus, decl, PLUS_EXPR, incr, NULL_TREE);
orig_body = *body;
*body = push_stmt_list ();