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

Attachment: pr52869.patch
Description: Binary data

Reply via email to