diff options
author | Jason Merrill <jason@redhat.com> | 2019-05-13 17:32:14 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2019-05-13 17:32:14 -0400 |
commit | cd9cf97bbfdc3b810b408a98cf79e629929dd5f6 (patch) | |
tree | ad29085374ce1ed3f494aa80948476a83beb44b7 /gcc/cp/except.c | |
parent | 93ee143d1888051fbf3156212accc154af3a667b (diff) | |
download | gcc-cd9cf97bbfdc3b810b408a98cf79e629929dd5f6.zip gcc-cd9cf97bbfdc3b810b408a98cf79e629929dd5f6.tar.gz gcc-cd9cf97bbfdc3b810b408a98cf79e629929dd5f6.tar.bz2 |
Use releasing_vec more broadly.
* cp-tree.h (struct releasing_vec): Replace get_ref method with
operator&.
(vec_safe_push, vec_safe_reserve, vec_safe_length, vec_safe_splice):
Forwarding functions for releasing_vec.
(release_tree_vector): Declare but don't define.
* call.c (build_op_delete_call, build_temp, call_copy_ctor)
(perform_direct_initialization_if_possible): Use releasing_vec.
* constexpr.c (cxx_eval_vec_init_1, cxx_eval_store_expression):
Likewise.
* cp-gimplify.c (cp_fold): Likewise.
* cvt.c (force_rvalue, ocp_convert): Likewise.
* decl.c (get_tuple_decomp_init): Likewise.
* except.c (build_throw): Likewise.
* init.c (perform_member_init, expand_default_init): Likewise.
* method.c (do_build_copy_assign, locate_fn_flags): Likewise.
* parser.c (cp_parser_userdef_char_literal)
(cp_parser_userdef_numeric_literal)
(cp_parser_userdef_string_literal)
(cp_parser_perform_range_for_lookup)
(cp_parser_range_for_member_function, cp_parser_omp_for_loop)
(cp_parser_omp_for_loop_init): Likewise.
* pt.c (tsubst_copy_and_build, do_class_deduction): Likewise.
* semantics.c (calculate_direct_bases, calculate_bases)
(finish_omp_barrier, finish_omp_flush, finish_omp_taskwait)
(finish_omp_taskyield, finish_omp_cancel)
(finish_omp_cancellation_point): Likewise.
* tree.c (build_vec_init_elt, strip_typedefs, strip_typedefs_expr)
(build_min_non_dep_op_overload): Likewise.
* typeck.c (build_function_call_vec, cp_build_function_call_nary)
(cp_build_modify_expr): Likewise.
* typeck2.c (build_functional_cast): Likewise.
From-SVN: r271138
Diffstat (limited to 'gcc/cp/except.c')
-rw-r--r-- | gcc/cp/except.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gcc/cp/except.c b/gcc/cp/except.c index afc2610..3b792cb 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -756,7 +756,6 @@ build_throw (tree exp) if (CLASS_TYPE_P (temp_type)) { int flags = LOOKUP_NORMAL | LOOKUP_ONLYCONVERTING; - vec<tree, va_gc> *exp_vec; bool converted = false; /* Under C++0x [12.8/16 class.copy], a thrown lvalue is sometimes @@ -767,12 +766,11 @@ build_throw (tree exp) && !CP_TYPE_VOLATILE_P (TREE_TYPE (exp))) { tree moved = move (exp); - exp_vec = make_tree_vector_single (moved); + releasing_vec exp_vec (make_tree_vector_single (moved)); moved = (build_special_member_call (object, complete_ctor_identifier, &exp_vec, TREE_TYPE (object), flags|LOOKUP_PREFER_RVALUE, tf_none)); - release_tree_vector (exp_vec); if (moved != error_mark_node) { exp = moved; @@ -783,11 +781,10 @@ build_throw (tree exp) /* Call the copy constructor. */ if (!converted) { - exp_vec = make_tree_vector_single (exp); + releasing_vec exp_vec (make_tree_vector_single (exp)); exp = (build_special_member_call (object, complete_ctor_identifier, &exp_vec, TREE_TYPE (object), flags, tf_warning_or_error)); - release_tree_vector (exp_vec); } if (exp == error_mark_node) |