[Bug c++/107897] [13 Regression] mangling conflicts with a previous mangle since r13-3601
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107897 Jason Merrill changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED --- Comment #8 from Jason Merrill --- Fixed.
[Bug c++/107897] [13 Regression] mangling conflicts with a previous mangle since r13-3601
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107897 --- Comment #7 from CVS Commits --- The trunk branch has been updated by Jason Merrill : https://gcc.gnu.org/g:a23b33a1bdeff7bc2289d9ebb7cb7b7ec0a605f5 commit r13-6944-ga23b33a1bdeff7bc2289d9ebb7cb7b7ec0a605f5 Author: Jason Merrill Date: Mon Mar 6 15:33:45 2023 -0500 c++: lambda mangling alias issues [PR107897] In 107897, by the time we are looking at the mangling clash, the alias has already been removed from the symbol table by analyze_functions, so we can't look at n->cpp_implicit_alias. So just assume that it's an alias if it's internal. In 108887 the problem is that removing the mangling alias from the symbol table confuses analyze_functions, because it ended up as first_analyzed somehow, so it becomes a dangling pointer. So instead we call reset() to neutralize the alias. To make this work for variables, I needed to move reset() from cgraph_node to symtab_node. PR c++/107897 PR c++/108887 gcc/ChangeLog: * cgraph.h: Move reset() from cgraph_node to symtab_node. * cgraphunit.cc (symtab_node::reset): Adjust. Also call remove_from_same_comdat_group. gcc/cp/ChangeLog: * decl2.cc (record_mangling): Use symtab_node::reset. gcc/testsuite/ChangeLog: * g++.dg/cpp2a/concepts-lambda3.C: Use -flto if supported. * g++.dg/cpp0x/lambda/lambda-mangle7.C: New test.
[Bug c++/107897] [13 Regression] mangling conflicts with a previous mangle since r13-3601
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107897 Jason Merrill changed: What|Removed |Added CC||asolokha at gmx dot com --- Comment #6 from Jason Merrill --- *** Bug 108971 has been marked as a duplicate of this bug. ***
[Bug c++/107897] [13 Regression] mangling conflicts with a previous mangle since r13-3601
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107897 Jason Merrill changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org Status|NEW |ASSIGNED
[Bug c++/107897] [13 Regression] mangling conflicts with a previous mangle since r13-3601
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107897 Jakub Jelinek changed: What|Removed |Added CC||jason at gcc dot gnu.org --- Comment #5 from Jakub Jelinek --- The error can be certainly worked around with -fabi-compat-version=18, but I wonder if we just shouldn't disable mangling aliases for decls where write_closure_type_name has been called and LAMBDA_EXPR_SCOPE_SIG_DISCRIMINATOR != LAMBDA_EXPR_SCOPE_ONLY_DISCRIMINATOR. Because the mangling change doesn't look like mangle this differently, but use different numbering scheme in the same mangling. If yes, it could be arranged by if ((LAMBDA_EXPR_SCOPE_SIG_DISCRIMINATOR (lambda) != LAMBDA_EXPR_SCOPE_ONLY_DISCRIMINATOR (lambda)) && abi_warn_or_compat_version_crosses (18)) G.need_abi_warning = true; not setting just the G.need_abi_warning flag but some new flag in G which would disable creation of the mangling alias. Thoughts on that?
[Bug c++/107897] [13 Regression] mangling conflicts with a previous mangle since r13-3601
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107897 Richard Biener changed: What|Removed |Added Priority|P3 |P1
[Bug c++/107897] [13 Regression] mangling conflicts with a previous mangle since r13-3601
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107897 Jakub Jelinek changed: What|Removed |Added Summary|[13 Regression] mangling|[13 Regression] mangling |conflicts with a previous |conflicts with a previous |mangle |mangle since r13-3601 CC||jakub at gcc dot gnu.org, ||nathan at gcc dot gnu.org --- Comment #4 from Jakub Jelinek --- Started with r13-3601-g2b0e81d5cc2f7e1d773f6c502bd65b097f392675