Thanks,I will report it. Richard Biener <[email protected]> 于2026年2月25日周三 16:05写道:
> On Wed, Feb 25, 2026 at 9:00 AM ywgrit via Gcc <[email protected]> wrote: > > > > When building MySQL 8.0.25 with GCC trunk and `enable-checking=release`, > an > > error related to devirtualization occurs: `gcc_assert (symtab->state < > > IPA_SSA || targets.length() <= len)` fails. > > When `symtab->state == IPA_SSA`, certain types remain unadded to > > `odr_types`, such as MySQL's `Protocol_change_notification` type. During > > the first invocation of `possible_polymorphic_call_targets` in > > `dump_possible_polymorphic_call_targets`, `odr_types` does not include > > `Protocol_change_notification`. The second call to > > possible_polymorphic_call_targets adds context.speculative_outer_type > > (Protocol_change_notification) to odr_types. This is included in the > result > > of possible_polymorphic_call_targets, and targets.length()(1) <= len(0) > > does not hold. > > I'm wondering if `symtab->state == IPA_SSA` indicates that `odr_types` > now > > contains all types in the program at this stage. If so, this contradicts > > the MySQL example. Since I'm unfamiliar with how `odr_types` is > > constructed, it's not easy to analyze why `Protocol_change_notification` > > isn't included in `odr_types` when `symtab->state == IPA_SSA`. I'd > > appreciate your insights. > > I would suggest you file a bugzilla report, attaching preprocessed source > of the TU where the ICE occurs. > > Richard. > > > Thank you. >
