diff options
author | Jason Merrill <jason@redhat.com> | 2025-03-20 12:57:15 -0400 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2025-03-21 12:45:00 -0400 |
commit | ab716829da7c885b97ac2649c7c0ff5c7703ffa5 (patch) | |
tree | d0f4781ba0443ad7fad309a8c8a3f7b0d81b5ccf /gcc/fortran | |
parent | 94fa9f4d27bac577ecab43379a31fa28b146d6d9 (diff) | |
download | gcc-ab716829da7c885b97ac2649c7c0ff5c7703ffa5.zip gcc-ab716829da7c885b97ac2649c7c0ff5c7703ffa5.tar.gz gcc-ab716829da7c885b97ac2649c7c0ff5c7703ffa5.tar.bz2 |
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.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions