------- Comment #6 from jakub at gcc dot gnu dot org 2009-08-03 12:07 ------- ctor initializer isn't needed, this ICEs as well: struct M { M () {} ~M () {} };
void foo () { M m[1] = (M[1]) { M () }; } and the ICE on the trunk is for the same reason, GIMPLE_WITH_CLEANUP_EXPR left in the IL during gimplification, presumably because there wasn't any immediately surrounding CLEANUP_POINT_EXPR. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40948