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