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: