decl2.c (ssdf_decls, [...]): Use VEC instead of VARRAY.

* decl2.c (ssdf_decls, start_static_storage_duration_function,
	generate_ctor_or_dtor_function): Use VEC instead of VARRAY.

From-SVN: r99319
This commit is contained in:
Kazu Hirata 2005-05-06 14:24:20 +00:00 committed by Kazu Hirata
parent 6394d87daf
commit 1bc5f355d9
2 changed files with 22 additions and 22 deletions

View File

@ -2,6 +2,9 @@
* decl2.c (spew_debug): Remove.
* decl2.c (ssdf_decls, start_static_storage_duration_function,
generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
* decl2.c (deferred_fns, note_vague_linkage_fn,

View File

@ -2167,7 +2167,7 @@ static GTY(()) tree ssdf_decl;
/* All the static storage duration functions created in this
translation unit. */
static GTY(()) varray_type ssdf_decls;
static GTY(()) VEC(tree,gc) *ssdf_decls;
/* A map from priority levels to information about that priority
level. There may be many such levels, so efficient lookup is
@ -2215,7 +2215,7 @@ start_static_storage_duration_function (unsigned count)
static constructors and destructors. */
if (!ssdf_decls)
{
VARRAY_TREE_INIT (ssdf_decls, 32, "ssdf_decls");
ssdf_decls = VEC_alloc (tree, gc, 32);
/* Take this opportunity to initialize the map from priority
numbers to information about that priority level. */
@ -2231,7 +2231,7 @@ start_static_storage_duration_function (unsigned count)
get_priority_info (DEFAULT_INIT_PRIORITY);
}
VARRAY_PUSH_TREE (ssdf_decls, ssdf_decl);
VEC_safe_push (tree, gc, ssdf_decls, ssdf_decl);
/* Create the argument list. */
initialize_p_decl = cp_build_parm_decl
@ -2607,26 +2607,23 @@ generate_ctor_or_dtor_function (bool constructor_p, int priority,
/* Call the static storage duration function with appropriate
arguments. */
if (ssdf_decls)
for (i = 0; i < ssdf_decls->elements_used; ++i)
{
fndecl = VARRAY_TREE (ssdf_decls, i);
for (i = 0; VEC_iterate (tree, ssdf_decls, i, fndecl); ++i)
{
/* Calls to pure or const functions will expand to nothing. */
if (! (flags_from_decl_or_type (fndecl) & (ECF_CONST | ECF_PURE)))
{
if (! body)
body = start_objects (function_key, priority);
/* Calls to pure or const functions will expand to nothing. */
if (! (flags_from_decl_or_type (fndecl) & (ECF_CONST | ECF_PURE)))
{
if (! body)
body = start_objects (function_key, priority);
arguments = tree_cons (NULL_TREE,
build_int_cst (NULL_TREE, priority),
NULL_TREE);
arguments = tree_cons (NULL_TREE,
build_int_cst (NULL_TREE, constructor_p),
arguments);
finish_expr_stmt (build_function_call (fndecl, arguments));
}
}
arguments = tree_cons (NULL_TREE,
build_int_cst (NULL_TREE, priority),
NULL_TREE);
arguments = tree_cons (NULL_TREE,
build_int_cst (NULL_TREE, constructor_p),
arguments);
finish_expr_stmt (build_function_call (fndecl, arguments));
}
}
/* If we're generating code for the DEFAULT_INIT_PRIORITY, throw in
calls to any functions marked with attributes indicating that