aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/class.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2021-07-13 14:42:09 -0400
committerJason Merrill <jason@redhat.com>2021-07-14 15:01:27 -0400
commit91bb571d200e551f427e337e00494e0b4f229876 (patch)
treeb72e29de68aa237224fbafabf8b0271734aa3fc4 /gcc/cp/class.c
parentb15e301748f0e042379909e32b3ade439dd8f8f9 (diff)
downloadgcc-91bb571d200e551f427e337e00494e0b4f229876.zip
gcc-91bb571d200e551f427e337e00494e0b4f229876.tar.gz
gcc-91bb571d200e551f427e337e00494e0b4f229876.tar.bz2
vec: use auto_vec in a few more places
The uses of vec<T> in get_all_loop_exits and process_conditional were memory leaks, as .release() was never called for them. The other changes are some cases that did have proper release handling, but it's simpler to leave releasing to the auto_vec destructor. gcc/ChangeLog: * sel-sched-ir.h (get_all_loop_exits): Use auto_vec. gcc/cp/ChangeLog: * class.c (struct find_final_overrider_data): Use auto_vec. (find_final_overrider): Remove explicit release. * coroutines.cc (process_conditional): Use auto_vec. * cp-gimplify.c (struct cp_genericize_data): Use auto_vec. (cp_genericize_tree): Remove explicit release. * parser.c (cp_parser_objc_at_property_declaration): Use auto_delete_vec. * semantics.c (omp_reduction_lookup): Use auto_vec.
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r--gcc/cp/class.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 33093e1..14db066 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -2391,7 +2391,7 @@ struct find_final_overrider_data {
/* The candidate overriders. */
tree candidates;
/* Path to most derived. */
- vec<tree> path;
+ auto_vec<tree> path;
};
/* Add the overrider along the current path to FFOD->CANDIDATES.
@@ -2504,8 +2504,6 @@ find_final_overrider (tree derived, tree binfo, tree fn)
dfs_walk_all (derived, dfs_find_final_overrider_pre,
dfs_find_final_overrider_post, &ffod);
- ffod.path.release ();
-
/* If there was no winner, issue an error message. */
if (!ffod.candidates || TREE_CHAIN (ffod.candidates))
return error_mark_node;