Hi Jason,

Very many thanks for your reviews/approvals of these ICE-on-invalid-code fixes.

> > +  if (TREE_VALUE (new_parm) != error_mark_node)
> > +    DECL_VIRTUAL_P (TREE_VALUE (new_parm)) = true;
> 
> Hmm, I wonder about returning early if there was an error, but this is fine 
> as is.

The challenge here is the need to perform "current_binding_level = entry_scope;"
required to restore the parser state before returning.  Now that the parser is
written in C++, we could (in theory) make more use of destructors to 
automatically
restore/pop state, making it safe(r) to just "return error_mark_node" 
immediately
in more places.

> > +/* { dg-options "-O2" } */
>
> This also seems unneeded for this test.

Doh! Force of habit (from working in the middle-end).  Consider this removed
from all the test cases below.

Is there any chance I could ask you to also look at these (that probably slipped
through the net), though PR 84964 might require a nod from a middle-end 
maintainer.

PR c++/39751: 
https://gcc.gnu.org/pipermail/gcc-patches/2022-February/590951.html
PR c++/84964: 
https://gcc.gnu.org/pipermail/gcc-patches/2022-February/590961.html
PR c++/95999: 
https://gcc.gnu.org/pipermail/gcc-patches/2022-February/590653.html
PR c++/96442: 
https://gcc.gnu.org/pipermail/gcc-patches/2022-February/590716.html

Very many thanks again for your help/reviews.  Much appreciated.
Roger
--


Reply via email to