summaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-09 15:16:54 +0000
committerfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-09 15:16:54 +0000
commitfd70b918fb48af1591d29b6496f293212a3b8456 (patch)
tree6162a09559481c767b455c6ea6b6ef7861306c48 /gcc/cp
parentd44856e9db112211737f321e4622eb2393f6f87d (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/cp/call.c6
-rw-r--r--gcc/cp/cp-gimplify.c2
-rw-r--r--gcc/cp/pt.c11
-rw-r--r--gcc/cp/semantics.c2
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);