r218755 - in /trunk: gcc/c-family/ChangeLog gcc...
jason@gcc.gnu.org
jason@gcc.gnu.org
Mon Dec 15 18:31:00 GMT 2014
Author: jason
Date: Mon Dec 15 18:31:40 2014
New Revision: 218755
URL: https://gcc.gnu.org/viewcvs?rev=218755&root=gcc&view=rev
Log:
N3778: Sized Deallocation
gcc/c-family/
* c.opt (-fsized-deallocation, -Wc++14-compat): New.
(-Wsized-deallocation): New.
* c-opts.c (c_common_post_options): -fsized-deallocation defaults
to on in C++14 and up.
gcc/cp/
* call.c (non_placement_deallocation_fn_p): A global sized
operator delete is not a usual deallocation function until C++14.
(build_op_delete_call): Choose the global sized op delete if we
know the size.
* cp-tree.h: Declare non_placement_deallocation_fn_p.
(enum cp_tree_index): Remove CPTI_GLOBAL_DELETE_FNDECL.
(global_delete_fndecl): Remove.
* decl.c (cxx_init_decl_processing): Also declare sized op deletes.
(grok_op_properties): Warn about sized dealloc without the flag.
* init.c (build_builtin_delete_call): Remove.
(build_vec_delete_1, build_delete): Don't call it.
* decl2.c (maybe_warn_sized_delete): New.
(cp_write_global_declarations): Call it.
libstdc++-v3/
* libsupc++/del_ops.cc: New.
* libsupc++/del_opvs.cc: New.
* libsupc++/Makefile.am: Add them.
* libsupc++/Makefile.in: Regenerate.
* config/abi/pre/gnu.ver: Export _ZdlPvm and _ZdaPvm.
Added:
trunk/gcc/testsuite/g++.dg/cpp1y/sized-dealloc1.C
trunk/gcc/testsuite/g++.dg/cpp1y/sized-dealloc2.C
trunk/gcc/testsuite/g++.dg/cpp1y/sized-dealloc3.C
trunk/libstdc++-v3/libsupc++/del_ops.cc
trunk/libstdc++-v3/libsupc++/del_opvs.cc
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-opts.c
trunk/gcc/c-family/c.opt
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/init.c
trunk/gcc/doc/invoke.texi
trunk/gcc/testsuite/g++.dg/tree-ssa/pr61034.C
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/config/abi/pre/gnu.ver
trunk/libstdc++-v3/libsupc++/Makefile.am
trunk/libstdc++-v3/libsupc++/Makefile.in
More information about the Gcc-cvs
mailing list