https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111650
--- Comment #1 from Iain Buclaw <ibuclaw at gdcproject dot org> --- Reduced a bit more. --- module object; ref V require(K, V)(ref V[K] aa, K key, lazy V value); struct Root { ulong[3] f; } Root[ulong] roots; Root getRoot(int fd, ulong rootID) { return roots.require(rootID, { Root result; inoLookup(fd, () => result); return result; }()); } void inoLookup(int, scope Root delegate()) { }