https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94970
--- Comment #4 from Iain Buclaw <ibuclaw at gdcproject dot org> --- (In reply to Iain Buclaw from comment #3) > Somewhat simplified reduction of test that doesn't depend on operator > overloading. > > struct RegexMatch > { > string index() { return null; } > ~this() { } > } > auto m() { return RegexMatch(); } > > void initCommands() > { > auto a = m.index() ~ ' '; > } There are two places that create a BIND_EXPR in the D front end, first in CatExp, the other in NewExp. The ICE would also happen there as well, and indeed, it does if the initialization is replaced with. auto a = new int[](m.index);