------- Comment #7 from jakub at gcc dot gnu dot org 2009-08-03 14:57 ------- Seems this is cleanup of the finish_compound_literal returned TARGET_EXPR vs. TRY_BLOCK added by build_vec_init for the from_array != 2 case. The TARGET_EXPR with cleanup is only referenced from within stmts inside of the TRY_BLOCK, yet the corresponding CLEANUP_POINT_EXPR is only added outside of the TRY_BLOCK and thus gimplification doesn't find the GIMPLE_WITH_CLEANUP_EXPR.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40948