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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
--- gcc/cp/parser.c.jj  2020-12-03 20:41:57.194174600 +0100
+++ gcc/cp/parser.c     2020-12-03 20:46:28.626125729 +0100
@@ -30589,7 +30589,7 @@ cp_parser_late_parsing_default_args (cp_
       tree copy;
       unsigned ix;

-      tree parmdecl = parms[i];
+      tree parmdecl = (*parms)[i];
       pushdecl (parmdecl);

       if (!default_arg)
@@ -30618,8 +30618,8 @@ cp_parser_late_parsing_default_args (cp_
   parm = NULL_TREE;
   for (int i = parms->length () - 1; i >= 0; --i)
     {
-      DECL_CHAIN (parms[i]) = parm;
-      parm = parms[i];
+      DECL_CHAIN ((*parms)[i]) = parm;
+      parm = (*parms)[i];
     }

   pop_defarg_context ();

seems to work for me.
So does:
--- gcc/cp/cp-tree.h.jj 2020-12-02 22:55:36.328252325 +0100
+++ gcc/cp/cp-tree.h    2020-12-03 20:49:11.746293467 +0100
@@ -963,6 +963,7 @@ public:

   /* Breaks pointer/value consistency for convenience.  */
   tree& operator[] (unsigned i) const { return (*v)[i]; }
+  tree& operator[] (int i) const { return (*v)[i]; }

   ~releasing_vec() { release_tree_vector (v); }
 private:

Reply via email to