diff options
author | froydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-09 15:16:54 +0000 |
---|---|---|
committer | froydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-09 15:16:54 +0000 |
commit | fd70b918fb48af1591d29b6496f293212a3b8456 (patch) | |
tree | 6162a09559481c767b455c6ea6b6ef7861306c48 /gcc/cp | |
parent | d44856e9db112211737f321e4622eb2393f6f87d (diff) | |
download | gcc-fd70b918fb48af1591d29b6496f293212a3b8456.tar.gz |
* call.c (build_call_n): Call XALLOCAVEC instead of alloca.
(build_op_delete_call): Likewise.
(build_over_call): Likewise.
* cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
* pt.c (process_partial_specialization): Likewise.
(tsubst_template_args): Likewise.
* semantics.c (finish_asm_stmt): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160485 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/cp/call.c | 6 | ||||
-rw-r--r-- | gcc/cp/cp-gimplify.c | 2 | ||||
-rw-r--r-- | gcc/cp/pt.c | 11 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 2 |
5 files changed, 20 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3bb19a09af0..f9831421f38 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,13 @@ +2010-06-09 Nathan Froyd <froydnj@codesourcery.com> + + * call.c (build_call_n): Call XALLOCAVEC instead of alloca. + (build_op_delete_call): Likewise. + (build_over_call): Likewise. + * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise. + * pt.c (process_partial_specialization): Likewise. + (tsubst_template_args): Likewise. + * semantics.c (finish_asm_stmt): Likewise. + 2010-06-08 Nathan Sidwell <nathan@codesourcery.com> * decl.c (record_key_method_defined): New, broken out of ... diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 03d188bab2e..9162a1d83a5 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -282,7 +282,7 @@ build_call_n (tree function, int n, ...) return build_call_a (function, 0, NULL); else { - tree *argarray = (tree *) alloca (n * sizeof (tree)); + tree *argarray = XALLOCAVEC (tree, n); va_list ap; int i; @@ -4756,7 +4756,7 @@ build_op_delete_call (enum tree_code code, tree addr, tree size, /* The placement args might not be suitable for overload resolution at this point, so build the call directly. */ int nargs = call_expr_nargs (placement); - tree *argarray = (tree *) alloca (nargs * sizeof (tree)); + tree *argarray = XALLOCAVEC (tree, nargs); int i; argarray[0] = addr; for (i = 1; i < nargs; i++) @@ -5624,7 +5624,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) nargs = VEC_length (tree, args) + (first_arg != NULL_TREE ? 1 : 0); if (parmlen > nargs) nargs = parmlen; - argarray = (tree *) alloca (nargs * sizeof (tree)); + argarray = XALLOCAVEC (tree, nargs); /* The implicit parameters to a constructor are not considered by overload resolution, and must be of the proper type. */ diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c index f45d714780f..fb7daeb3e81 100644 --- a/gcc/cp/cp-gimplify.c +++ b/gcc/cp/cp-gimplify.c @@ -981,7 +981,7 @@ cxx_omp_clause_apply_fn (tree fn, tree arg1, tree arg2) return NULL; nargs = list_length (DECL_ARGUMENTS (fn)); - argarray = (tree *) alloca (nargs * sizeof (tree)); + argarray = XALLOCAVEC (tree, nargs); defparm = TREE_CHAIN (TYPE_ARG_TYPES (TREE_TYPE (fn))); if (arg2) diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 58b746fe16d..69216cf6e43 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -3875,10 +3875,10 @@ process_partial_specialization (tree decl) or some such would have been OK. */ tpd.level = TMPL_PARMS_DEPTH (current_template_parms); - tpd.parms = (int *) alloca (sizeof (int) * ntparms); + tpd.parms = XALLOCAVEC (int, ntparms); memset (tpd.parms, 0, sizeof (int) * ntparms); - tpd.arg_uses_template_parms = (int *) alloca (sizeof (int) * nargs); + tpd.arg_uses_template_parms = XALLOCAVEC (int, nargs); memset (tpd.arg_uses_template_parms, 0, sizeof (int) * nargs); for (i = 0; i < nargs; ++i) { @@ -3993,12 +3993,11 @@ process_partial_specialization (tree decl) if (!tpd2.parms) { /* We haven't yet initialized TPD2. Do so now. */ - tpd2.arg_uses_template_parms - = (int *) alloca (sizeof (int) * nargs); + tpd2.arg_uses_template_parms = XALLOCAVEC (int, nargs); /* The number of parameters here is the number in the main template, which, as checked in the assertion above, is NARGS. */ - tpd2.parms = (int *) alloca (sizeof (int) * nargs); + tpd2.parms = XALLOCAVEC (int, nargs); tpd2.level = TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (maintmpl)); } @@ -8525,7 +8524,7 @@ tsubst_template_args (tree t, tree args, tsubst_flags_t complain, tree in_decl) tree orig_t = t; int len = TREE_VEC_LENGTH (t); int need_new = 0, i, expanded_len_adjust = 0, out; - tree *elts = (tree *) alloca (len * sizeof (tree)); + tree *elts = XALLOCAVEC (tree, len); for (i = 0; i < len; i++) { diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 3e75240d034..8eb533614e0 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -1219,7 +1219,7 @@ finish_asm_stmt (int volatile_p, tree string, tree output_operands, tree operand; int i; - oconstraints = (const char **) alloca (noutputs * sizeof (char *)); + oconstraints = XALLOCAVEC (const char *, noutputs); string = resolve_asm_operand_names (string, output_operands, input_operands, labels); |