aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>2006-01-23 18:22:29 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2006-01-23 18:22:29 +0000
commit1c71c747a065705fbd5823c5559c03588aee4e13 (patch)
treee19e83de51f27837ae93985f881a400533cb10b6
parent6d1e9d18820210572be79e27413d7f2d66a53a2a (diff)
downloadgcc-1c71c747a065705fbd5823c5559c03588aee4e13.zip
gcc-1c71c747a065705fbd5823c5559c03588aee4e13.tar.gz
gcc-1c71c747a065705fbd5823c5559c03588aee4e13.tar.bz2
cp-tree.h (build_x_delete): Remove prototype.
* cp-tree.h (build_x_delete): Remove prototype. * init.c (build_vec_delete_1): Call build_op_delete_call directly and not via build_x_delete. (build_x_delete): Remove. From-SVN: r110138
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/cp-tree.h1
-rw-r--r--gcc/cp/init.c32
3 files changed, 9 insertions, 29 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index f219c42..018a25d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ * cp-tree.h (build_x_delete): Remove prototype.
+ * init.c (build_vec_delete_1): Call build_op_delete_call directly
+ and not via build_x_delete.
+ (build_x_delete): Remove.
+
* cp-tree.h (get_vtt_name): Remove prototype.
* class.c (get_vtt_name): Remove.
(build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index c65309c..0c777d7 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3949,7 +3949,6 @@ extern tree build_zero_init (tree, tree, bool);
extern tree build_offset_ref (tree, tree, bool);
extern tree build_new (tree, tree, tree, tree, int);
extern tree build_vec_init (tree, tree, tree, bool, int);
-extern tree build_x_delete (tree, int, tree);
extern tree build_delete (tree, tree,
special_function_kind,
int, int);
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 3ec5510..a9b394a 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -2247,9 +2247,10 @@ build_vec_delete_1 (tree base, tree maxindex, tree type,
}
if (auto_delete_vec == sfk_deleting_destructor)
- deallocate_expr = build_x_delete (base_tbd,
- 2 | use_global_delete,
- virtual_size);
+ deallocate_expr = build_op_delete_call (VEC_DELETE_EXPR,
+ base_tbd, virtual_size,
+ use_global_delete & 1,
+ NULL_TREE);
}
body = loop;
@@ -2609,31 +2610,6 @@ build_vec_init (tree base, tree maxindex, tree init,
return stmt_expr;
}
-/* Free up storage of type TYPE, at address ADDR.
-
- TYPE is a POINTER_TYPE and can be ptr_type_node for no special type
- of pointer.
-
- VIRTUAL_SIZE is the amount of storage that was allocated, and is
- used as the second argument to operator delete. It can include
- things like padding and magic size cookies. It has virtual in it,
- because if you have a base pointer and you delete through a virtual
- destructor, it should be the size of the dynamic object, not the
- static object, see Free Store 12.5 ISO C++.
-
- This does not call any destructors. */
-
-tree
-build_x_delete (tree addr, int which_delete, tree virtual_size)
-{
- int use_global_delete = which_delete & 1;
- int use_vec_delete = !!(which_delete & 2);
- enum tree_code code = use_vec_delete ? VEC_DELETE_EXPR : DELETE_EXPR;
-
- return build_op_delete_call (code, addr, virtual_size, use_global_delete,
- NULL_TREE);
-}
-
/* Call the DTOR_KIND destructor for EXP. FLAGS are as for
build_delete. */