https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114992

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:ab716829da7c885b97ac2649c7c0ff5c7703ffa5

commit r15-8651-gab716829da7c885b97ac2649c7c0ff5c7703ffa5
Author: Jason Merrill <ja...@redhat.com>
Date:   Thu Mar 20 12:57:15 2025 -0400

    ipa: target clone and mangling alias [PR114992]

    Since the mangling of the second lambda changed (previously we counted all
    lambdas, now we only count lambdas with the same signature), we
    generate_mangling_alias for handler<lambda2> for backward compatibility.
    Since handler is COMDAT, resolve_alias puts the alias in the same comdat
    group as handler itself.  Then create_dispatcher_calls tries to add the
    alias to the same comdat group as the dispatcher, but it's already in a
    same_comdat_group, so we ICE.

    It seems like we're just missing a remove_from_same_comdat_group before
    add_to_same_comdat_group.

            PR c++/114992

    gcc/ChangeLog:

            * multiple_target.cc (create_dispatcher_calls):
            remove_from_same_comdat_group before add_to_same_comdat_group.

    gcc/testsuite/ChangeLog:

            * g++.target/i386/mangling-alias1.C: New test.

Reply via email to