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