I think the fix for 35602 was wrong; instead of trying to suppress the
warning, we should avoid building expressions that trip it. In this
case, the problem is a type mismatch in build_vec_init between
maxindex/iterator (ptrdiff_type_node) and array_type_nelts_total
(sizetype). And indeed, converting (ptrdiff_t)-1 to unsigned changes
its sign.
I think a better fix for 35602 would be to bail out of build_vec_init
exit early if maxindex is -1.
Jason