http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47808
--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> 2011-03-11 15:45:58 UTC --- (In reply to comment #11) > I think it isn't the ?: arms here, but the condition on which > convert_like_real > is called. Same principle applies. > fold_nondependent_expr on the COND_EXPR called from > compute_array_index_type results in tsubst_copy_and_build on the CALL_EXPR to > abs overload, which then eventually calls convert_like_real. The problem comes when we try to tsubst_copy_and_build the result of the convert_like_real called at template definition time. > build_aggr_init_expr isn't called at all here BTW, I just don't see too many similarities with PR46003. My point in discussing 46003 has been that the problem is build_conditional_expr calling convert_like_real; build_aggr_init_expr isn't the key.