https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122699
Nathaniel Shead <nshead at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |nshead at gcc dot gnu.org
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Blocks| |103524
Last reconfirmed| |2025-11-16
Summary|ICE in make_dependency, at |[16 Regression] ICE in
|cp/module.cc:14467 |make_dependency, at
| |cp/module.cc:14467
Keywords| |ice-checking
--- Comment #1 from Nathaniel Shead <nshead at gcc dot gnu.org> ---
Confirmed, looks like because of r16-5213 "c++/modules: Maintain attachment of
temploid friends after duplicate_decls [PR122551]".
The issue here is that `operator|` is now marked as purview and not as imported
(as it's instantiated within M's purview); nevertheless we didn't add it to our
local binding table and so we fail a checking assertion.
Perhaps we should check 'imported_temploid_friends' to consider this an
imported declaration as well... but then, maybe there's good reason we should
be emitting these instantiations from this module as well. I'll need to think
more and experiment, the behaviour of friends is quite complex and I'm sure I'm
still missing something here.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103524
[Bug 103524] [meta-bug] modules issue