[Bug c++/94616] [8 Regression] Incorrect destruction for partially built objects
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Apr 16 10:30:05 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94616
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |paolo at gcc dot gnu.org
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The regression started with Paolo's r186058:
re PR c++/50043 ([C++0x] Implement core/1123)
PR c++/50043
* class.c (deduce_noexcept_on_destructor,
deduce_noexcept_on_destructors): New.
(check_bases_and_members): Call the latter.
* decl.c (grokfndecl): Call the former.
* method.c (implicitly_declare_fn): Not static.
* cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
Declare
For gcc-4.8 and gcc-4.9 using -fPIC makes it pass, but then since gcc-5 it
fails even with -fPIC, due to Jason's r213307:
re PR lto/53808 (Undefined symbol when building a library with lto)
PR lto/53808
PR c++/61659
* pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
(check_explicit_specialization): Clear it on specializations.
* decl.c (duplicate_decls, start_decl): Likewise.
(grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
* method.c (implicitly_declare_fn): Set DECL_COMDAT. Determine
linkage after setting the appropriate flags.
* tree.c (decl_linkage): Don't check DECL_COMDAT.
* decl2.c (mark_needed): Mark clones.
(import_export_decl): Not here.
More information about the Gcc-bugs
mailing list