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
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| config | Loading commit data... | |
| testsuite | Loading commit data... | |
| .gitignore | Loading commit data... | |
| COPYING.LIB | Loading commit data... | |
| ChangeLog | Loading commit data... | |
| Makefile.in | Loading commit data... | |
| README | Loading commit data... | |
| _doprnt.c | Loading commit data... | |
| aclocal.m4 | Loading commit data... | |
| alloca.c | Loading commit data... | |
| argv.c | Loading commit data... | |
| asprintf.c | Loading commit data... | |
| at-file.texi | Loading commit data... | |
| atexit.c | Loading commit data... | |
| basename.c | Loading commit data... | |
| bcmp.c | Loading commit data... | |
| bcopy.c | Loading commit data... | |
| bsearch.c | Loading commit data... | |
| bzero.c | Loading commit data... | |
| calloc.c | Loading commit data... | |
| choose-temp.c | Loading commit data... | |
| clock.c | Loading commit data... | |
| concat.c | Loading commit data... | |
| config.h-vms | Loading commit data... | |
| config.in | Loading commit data... | |
| configure | Loading commit data... | |
| configure.ac | Loading commit data... | |
| configure.com | Loading commit data... | |
| copying-lib.texi | Loading commit data... | |
| copysign.c | Loading commit data... | |
| cp-demangle.c | Loading commit data... | |
| cp-demangle.h | Loading commit data... | |
| cp-demint.c | Loading commit data... | |
| cplus-dem.c | Loading commit data... | |
| crc32.c | Loading commit data... | |
| dwarfnames.c | Loading commit data... | |
| dyn-string.c | Loading commit data... | |
| fdmatch.c | Loading commit data... | |
| ffs.c | Loading commit data... | |
| fibheap.c | Loading commit data... | |
| filename_cmp.c | Loading commit data... | |
| floatformat.c | Loading commit data... | |
| fnmatch.c | Loading commit data... | |
| fnmatch.txh | Loading commit data... | |
| fopen_unlocked.c | Loading commit data... | |
| functions.texi | Loading commit data... | |
| gather-docs | Loading commit data... | |
| getcwd.c | Loading commit data... | |
| getopt.c | Loading commit data... | |
| getopt1.c | Loading commit data... | |
| getpagesize.c | Loading commit data... | |
| getpwd.c | Loading commit data... | |
| getruntime.c | Loading commit data... | |
| gettimeofday.c | Loading commit data... | |
| hashtab.c | Loading commit data... | |
| hex.c | Loading commit data... | |
| index.c | Loading commit data... | |
| insque.c | Loading commit data... | |
| lbasename.c | Loading commit data... | |
| libiberty.texi | Loading commit data... | |
| lrealpath.c | Loading commit data... | |
| maint-tool | Loading commit data... | |
| make-relative-prefix.c | Loading commit data... | |
| make-temp-file.c | Loading commit data... | |
| makefile.vms | Loading commit data... | |
| md5.c | Loading commit data... | |
| memchr.c | Loading commit data... | |
| memcmp.c | Loading commit data... | |
| memcpy.c | Loading commit data... | |
| memmem.c | Loading commit data... | |
| memmove.c | Loading commit data... | |
| mempcpy.c | Loading commit data... | |
| memset.c | Loading commit data... | |
| mkstemps.c | Loading commit data... | |
| msdos.c | Loading commit data... | |
| objalloc.c | Loading commit data... | |
| obstack.c | Loading commit data... | |
| obstacks.texi | Loading commit data... | |
| partition.c | Loading commit data... | |
| pex-common.c | Loading commit data... | |
| pex-common.h | Loading commit data... | |
| pex-djgpp.c | Loading commit data... | |
| pex-msdos.c | Loading commit data... | |
| pex-one.c | Loading commit data... | |
| pex-unix.c | Loading commit data... | |
| pex-win32.c | Loading commit data... | |
| pexecute.c | Loading commit data... | |
| pexecute.txh | Loading commit data... | |
| physmem.c | Loading commit data... | |
| putenv.c | Loading commit data... | |
| random.c | Loading commit data... | |
| regex.c | Loading commit data... | |
| rename.c | Loading commit data... | |
| rindex.c | Loading commit data... | |
| safe-ctype.c | Loading commit data... | |
| setenv.c | Loading commit data... | |
| setproctitle.c | Loading commit data... | |
| sha1.c | Loading commit data... | |
| sigsetmask.c | Loading commit data... | |
| simple-object-coff.c | Loading commit data... | |
| simple-object-common.h | Loading commit data... | |
| simple-object-elf.c | Loading commit data... | |
| simple-object-mach-o.c | Loading commit data... | |
| simple-object-xcoff.c | Loading commit data... | |
| simple-object.c | Loading commit data... | |
| simple-object.txh | Loading commit data... | |
| snprintf.c | Loading commit data... | |
| sort.c | Loading commit data... | |
| spaces.c | Loading commit data... | |
| splay-tree.c | Loading commit data... | |
| stack-limit.c | Loading commit data... | |
| stpcpy.c | Loading commit data... | |
| stpncpy.c | Loading commit data... | |
| strcasecmp.c | Loading commit data... | |
| strchr.c | Loading commit data... | |
| strdup.c | Loading commit data... | |
| strerror.c | Loading commit data... | |
| strncasecmp.c | Loading commit data... | |
| strncmp.c | Loading commit data... | |
| strndup.c | Loading commit data... | |
| strnlen.c | Loading commit data... | |
| strrchr.c | Loading commit data... | |
| strsignal.c | Loading commit data... | |
| strstr.c | Loading commit data... | |
| strtod.c | Loading commit data... | |
| strtol.c | Loading commit data... | |
| strtoul.c | Loading commit data... | |
| strverscmp.c | Loading commit data... | |
| timeval-utils.c | Loading commit data... | |
| tmpnam.c | Loading commit data... | |
| unlink-if-ordinary.c | Loading commit data... | |
| vasprintf.c | Loading commit data... | |
| vfork.c | Loading commit data... | |
| vfprintf.c | Loading commit data... | |
| vprintf.c | Loading commit data... | |
| vsnprintf.c | Loading commit data... | |
| vsprintf.c | Loading commit data... | |
| waitpid.c | Loading commit data... | |
| xatexit.c | Loading commit data... | |
| xexit.c | Loading commit data... | |
| xmalloc.c | Loading commit data... | |
| xmemdup.c | Loading commit data... | |
| xstrdup.c | Loading commit data... | |
| xstrerror.c | Loading commit data... | |
| xstrndup.c | Loading commit data... |