https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119563
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Wait I think there is a typo: diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc index c1c8987ec8b..58774ded3d5 100644 --- a/gcc/cp/call.cc +++ b/gcc/cp/call.cc @@ -917,7 +917,7 @@ build_list_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) t->rank = cr_exact; for (j = 0; j < (unsigned) RAW_DATA_LENGTH (val); ++j) { - sub = subsubconvs[i]; + sub = subsubconvs[j]; if (sub->rank > t->rank) t->rank = sub->rank; if (sub->user_conv_p) This fixes that typo, We are looping over subsubconvs but used the outer index rather than the inner one.