https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105297
--- Comment #15 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> --- (In reply to Patrick Palka from comment #13) > (In reply to Jiu Fu Guo from comment #11) > > (In reply to Patrick Palka from comment #10) > > > > > > Interestingly that doesn't seem to make a difference. What seems to > > > matter > > > is whether the constexpr function modifies the CONSTRUCTOR that it > > > returns: > > > > > > constexpr auto foo() { > > > struct S { int d; } t = {}; > > > t.d = 0; // doesn't ICE if this line is commented out > > > return t; > > > } > > > > > > template<int> > > > int bar() { > > > constexpr auto t = foo(); > > > return 0; > > > } > > > > Right, it is weird. Some PRs on Xtreme-* failure (including ICE) were also > > reported before. e.g. PR100052, PR101853, PR99910. As commented in those > > PRs, these may be random failures, and changes in headers that could expose > > the ICE. > > I'm also wondering if this may be an issue hidden inside somewhere (GC?). > > In this case I suspect it's just a bug in the modules code, I opened > PR105322 to track it. Oh, thanks! This failure seems only about the module code on 'struct member cross functions'.