gcc/include
Jason Merrill 1f26ac8748 re PR c++/41090 (Using static label reference in c++ class constructor produces wrong code)
PR c++/41090
	Add -fdeclone-ctor-dtor.
gcc/cp/
	* optimize.c (can_alias_cdtor, populate_clone_array): Split out
	from maybe_clone_body.
	(maybe_thunk_body): New function.
	(maybe_clone_body): Call it.
	* mangle.c (write_mangled_name): Remove code to suppress
	writing of mangled name for cloned constructor or destructor.
	(write_special_name_constructor): Handle decloned constructor.
	(write_special_name_destructor): Handle decloned destructor.
	* method.c (trivial_fn_p): Handle decloning.
	* semantics.c (expand_or_defer_fn_1): Clone after setting linkage.
gcc/c-family/
	* c.opt: Add -fdeclone-ctor-dtor.
	* c-opts.c (c_common_post_options): Default to on iff -Os.
gcc/
	* cgraph.h (struct cgraph_node): Add calls_comdat_local.
	(symtab_comdat_local_p, symtab_in_same_comdat_p): New.
	* cif-code.def: Add USES_COMDAT_LOCAL.
	* symtab.c (verify_symtab_base): Make sure we don't refer to a
	comdat-local symbol from outside its comdat.
	* cgraph.c (verify_cgraph_node): Likewise.
	* cgraphunit.c (mark_functions_to_output): Don't mark comdat-locals.
	* ipa.c (symtab_remove_unreachable_nodes): Likewise.
	(function_and_variable_visibility): Handle comdat-local fns.
	* ipa-cp.c (determine_versionability): Don't clone comdat-locals.
	* ipa-inline-analysis.c (compute_inline_parameters): Update
	calls_comdat_local.
	* ipa-inline-transform.c (inline_call): Likewise.
	(save_inline_function_body): Don't clear DECL_COMDAT_GROUP.
	* ipa-inline.c (can_inline_edge_p): Check calls_comdat_local.
	* lto-cgraph.c (input_overwrite_node): Read calls_comdat_local.
	(lto_output_node): Write it.
	* symtab.c (symtab_dissolve_same_comdat_group_list): Clear
	DECL_COMDAT_GROUP for comdat-locals.
include/
	* demangle.h (enum gnu_v3_ctor_kinds):
	Added literal gnu_v3_unified_ctor.
	(enum gnu_v3_ctor_kinds):
	Added literal gnu_v3_unified_dtor.
libiberty/
	* cp-demangle.c (cplus_demangle_fill_ctor,cplus_demangle_fill_dtor):
	Handle unified ctor/dtor.
	(d_ctor_dtor_name): Handle unified ctor/dtor.

From-SVN: r206182
2013-12-23 12:49:47 -05:00
..
gdb gdb-index.h: Merge from gdb tree. 2013-10-22 18:12:28 +00:00
COPYING Update the address and phone number of the FSF organization. 2005-05-10 15:22:21 +00:00
COPYING3 COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
ChangeLog re PR c++/41090 (Using static label reference in c++ class constructor produces wrong code) 2013-12-23 12:49:47 -05:00
ChangeLog-9103 Convert ChangeLog files to UTF-8. 2008-09-05 13:07:45 +02:00
ansidecl.h re PR tree-optimization/58689 ([meta-bug] __attribute__((returns_nonnull)) enhancements) 2013-10-29 13:15:48 +00:00
demangle.h re PR c++/41090 (Using static label reference in c++ class constructor produces wrong code) 2013-12-23 12:49:47 -05:00
dwarf2.def dwarf2.def (DW_AT_GNU_discriminator): New attribute. 2013-08-19 20:11:09 +00:00
dwarf2.h dwarf2.h (enum dwarf_sect): New enum type. 2013-03-01 15:35:58 -08:00
dyn-string.h ansidecl.h: Add extern "C" when compiling with C++. 2009-06-01 05:47:20 +00:00
fibheap.h ansidecl.h: Add extern "C" when compiling with C++. 2009-06-01 05:47:20 +00:00
filenames.h filenames.h: #include "hashtab.h". 2012-07-13 22:12:28 +00:00
floatformat.h floatformat.h (floatformat_ibm_long_double): Delete. 2013-08-20 15:01:41 +09:30
fnmatch.h Update the address and phone number of the FSF organization. 2005-05-10 15:22:21 +00:00
getopt.h Update the address and phone number of the FSF organization. 2005-05-10 15:22:21 +00:00
hashtab.h utils.c (init_gnat_to_gnu): Use typed GC allocation. 2010-06-08 07:25:24 +00:00
leb128.h leb128.h: #include stdint.h, inttypes.h. 2012-05-23 23:42:25 +00:00
libiberty.h re PR tree-optimization/58689 ([meta-bug] __attribute__((returns_nonnull)) enhancements) 2013-10-29 13:15:48 +00:00
longlong.h longlong.h: New file. 2013-12-04 10:49:14 +00:00
lto-symtab.h Merge lto branch into trunk. 2009-10-03 17:10:11 -04:00
md5.h re PR other/54620 (sha1.c has incorrect math if sizeof(size_t) is 8) 2013-01-30 17:50:49 +01:00
objalloc.h PR other/54411: integer overflow in objalloc_alloc 2012-09-18 10:34:05 +02:00
obstack.h obstack.h [!GNUC] (obstack_free): Avoid cast to int. 2011-10-21 21:35:29 -04:00
partition.h Update the address and phone number of the FSF organization. 2005-05-10 15:22:21 +00:00
plugin-api.h Sync plugin-api.h with the copy in binutils. Please see: 2013-02-11 19:42:25 +00:00
safe-ctype.h safe-ctype.h: Add #include of ctype.h before redefining the ctype.h macros. 2008-07-07 17:08:21 +00:00
sha1.h re PR other/54620 (sha1.c has incorrect math if sizeof(size_t) is 8) 2013-01-30 17:50:49 +01:00
simple-object.h simple-object.h (simple_object_attributes_merge): Declare, replacing simple_object_attributes_compare. 2010-11-17 01:03:06 +00:00
sort.h Update the address and phone number of the FSF organization. 2005-05-10 15:22:21 +00:00
splay-tree.h gengtype.c (main): Make uintptr_t a known type. 2012-04-10 08:32:23 +00:00
symcat.h * symcat.h (CONCAT5, CONCAT6, XCONCAT5, XCONCAT6): Define. 2010-03-23 15:58:01 +00:00
timeval-utils.h timeval-utils.h: New file. 2011-09-28 19:09:50 +00:00
vtv-change-permission.h Commit the vtable verification feature. 2013-08-06 20:38:59 -07:00
xregex.h system.h [...]: Wrap C function declarations in extern "C". 2011-07-25 14:24:59 +00:00
xregex2.h xregex2.h (regexec): Qualify this prototype with __extension__ when compiling with GNU C. 2005-07-12 14:39:07 +10:00
xtensa-config.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00