diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2005-05-06 14:24:20 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2005-05-06 14:24:20 +0000 |
commit | 1bc5f355d98608937c636c76114b94da13186aad (patch) | |
tree | 9369b8a3e7d8dd6374bcd6c793996cc3a7ba8dfa /gcc | |
parent | 6394d87daf07139cc3b60e42435a30e4af4d6f29 (diff) | |
download | gcc-1bc5f355d98608937c636c76114b94da13186aad.zip gcc-1bc5f355d98608937c636c76114b94da13186aad.tar.gz gcc-1bc5f355d98608937c636c76114b94da13186aad.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 43 |
2 files changed, 23 insertions, 23 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8b078cb..35e9560 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -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, diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 77f40fc..50a1ac7 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -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); - - /* 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)); - } - } + 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); + + 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 |