http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59023
--- Comment #1 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> --- Using an intermediate variable works around the bug. If you replace: toto = t(helper()) with i = helper() toto = t(i) where i is an integer variable, you don't have the ICE anymore.