Thank you Marek,Appreciate your valuable feedback on the patch . Attached the latest ,please do let us know your thoughts.
~Umesh On Thu, Nov 15, 2018 at 9:26 PM Marek Polacek <pola...@redhat.com> wrote: > > On Thu, Nov 15, 2018 at 02:26:24PM +0530, Umesh Kalappa wrote: > > Thank you Marek for the inputs . > > >>In the future, if using diff, please also use the -p option. > > We are using svn diif and other comments are addressed . > > Thanks, but it doesn't seem like the -p option was used. > > > please let us know your take on the revised attached patch . > > > Index: cp/ChangeLog > =================================================================== > --- cp/ChangeLog (revision 266026) > +++ cp/ChangeLog (working copy) > @@ -1,3 +1,9 @@ > +2018-11-14 Kamlesh Kumar <kamleshbha...@gmail.com> > + > + PR c++/52869 > + *parser.c () : restore the old current_class_{ptr,ref} by > + inject_this_parameter(). > + > > This is still the same; can you adjust it according to my last suggestion? > > Index: cp/parser.c > =================================================================== > --- cp/parser.c (revision 266026) > +++ cp/parser.c (working copy) > @@ -24620,6 +24620,12 @@ > { > matching_parens parens; > parens.consume_open (parser); > + > + tree save_ccp = current_class_ptr; > + tree save_ccr = current_class_ref; > + > > Watch out for trailing whitespace in the blank lines. > > + if (current_class_type) > + inject_this_parameter (current_class_type, TYPE_UNQUALIFIED); > > I think you can remove the if here. > > if (require_constexpr) > { > @@ -24640,6 +24646,9 @@ > } > > parens.require_close (parser); > + > + save_ccp = current_class_ptr = save_ccp; > + save_ccr = current_class_ref = save_ccr; > > You don't need to set save_cc[pr] to itself here. > > Index: testsuite/ChangeLog > =================================================================== > --- testsuite/ChangeLog (revision 266026) > +++ testsuite/ChangeLog (working copy) > @@ -1,3 +1,8 @@ > +2018-11-14 Kamlesh Kumar <kamleshbha...@gmail.com> > + > + PR c++/52869 > + * g++.dg//DRs/dr52869.C: New. > + > > So DR != PR. Please name the test dr1207.C > > Index: testsuite/g++.dg/DRs/dr52869.C > =================================================================== > --- testsuite/g++.dg/DRs/dr52869.C (nonexistent) > +++ testsuite/g++.dg/DRs/dr52869.C (working copy) > @@ -0,0 +1,22 @@ > +/* { dg-do compile } */ > +/* { dg-options "-O0 -std=c++11" } */ > > Instead of this, do: > > // { dg-do compile { target c++11 } } > > Also, I wrote a test that fails if current_class_{ptr,ref} aren't properly > restored: > > // DR 1207 > // PR c++/52869 > // { dg-do compile { target c++11 } } > > void > fn () > { > struct S { > bool operator!() noexcept(false); > } s; > S t = s; > } > > So you can add that one too, e.g. testsuite/g++.dg/DRs/dr1207-2.C. > > Thanks, > Marek
pr52869.patch
Description: Binary data