https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124311
--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Nathaniel Shead <[email protected]>: https://gcc.gnu.org/g:2d1bf27b49d5d6cbe38a2a2cd8291ed8f98e1a31 commit r16-8044-g2d1bf27b49d5d6cbe38a2a2cd8291ed8f98e1a31 Author: Nathaniel Shead <[email protected]> Date: Tue Mar 3 01:24:06 2026 +1100 c++/modules: Merge synthesized definitions of defaulted members [PR124311] When a TU synthesizes a definition of a defaulted member function we mark the TU that did this as the originating module, and so export it from there. If this TU is imported into a module that already has a declaration of this entity the declarations should be merged. This patch fixes an issue where this merging was not occurring for explicitly defaulted member functions, by checking DECL_DEFAULTED_FN instead of just DECL_ARTIFICIAL. PR c++/124311 gcc/cp/ChangeLog: * module.cc (trees_in::key_mergeable): Check DECL_DEFAULTED_FN instead of DECL_ARTIFICIAL. gcc/testsuite/ChangeLog: * g++.dg/modules/imp-member-5_a.C: New test. * g++.dg/modules/imp-member-5_b.C: New test. * g++.dg/modules/imp-member-5_c.C: New test. Signed-off-by: Nathaniel Shead <[email protected]> Reviewed-by: Jason Merrill <[email protected]>
