https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90265

--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
This fixes it:

--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -18881,7 +18881,8 @@ tsubst_copy_and_build (tree t,
        if (thisarg)
          {
        /* Shift the other args over to make room.  */
-       vec_safe_push (call_args, (*call_args)[nargs-1]);
+       tree last = (*call_args)[nargs - 1];
+       vec_safe_push (call_args, last);
        for (int i = nargs-1; i > 0; --i)
          (*call_args)[i] = (*call_args)[i-1];
        (*call_args)[0] = thisarg;

Reply via email to