On Fri, Nov 16, 2018 at 12:23:42PM +0530, Umesh Kalappa wrote: > Thank you Marek,Appreciate your valuable feedback on the patch . > > Attached the latest ,please do let us know your thoughts.
Thanks, this version looks good! Just some small nits: --- gcc/cp/parser.c (revision 266026) +++ gcc/cp/parser.c (working copy) @@ -24620,6 +24620,12 @@ cp_parser_noexcept_specification_opt (cp_parser* p { matching_parens parens; parens.consume_open (parser); + + tree save_ccp = current_class_ptr; + tree save_ccr = current_class_ref; + + if (current_class_type) + inject_this_parameter (current_class_type, TYPE_UNQUALIFIED); This is indented a bit too much: the inject_this_parameter call should be two spaces to the right of the if. I.e.: if (current_class_type) inject_this_parameter (current_class_type, TYPE_UNQUALIFIED); +2018-11-16 Kamlesh Kumar <kamleshbha...@gmail.com> + + PR c++/52869 + * g++.dg//DRs/dr1207-1.C: New. + * g++.dg//DRs/dr1207-2.C: New. Just one / instead of two. --- gcc/testsuite/g++.dg/DRs/dr1207-1.C (nonexistent) +++ gcc/testsuite/g++.dg/DRs/dr1207-1.C (working copy) @@ -0,0 +1,25 @@ +// DR 1207 +// PR c++/52869 +// { dg-do compile { target c++11 } } + +struct S { + void f() { } + void g() noexcept(noexcept(f())) { } + void h() noexcept(noexcept(this->f())) { } +}; + +struct Nyan { + Nyan &operator++() noexcept { return *this; } + void omg() noexcept(noexcept(++*this)) {} +}; + +template <class T> +class Test{ + T count; + Test (T arg) {count=arg;} + void fetch() { } + T inc () noexcept(noexcept(this->fetch())) {return ++count;} + T dec () noexcept(noexcept(fetch())) { return --count;} +}; + + There are two extra newlines you can remove but otherwise the tests look fine now. I'll let Jason review the last version. Thanks for contributing to GCC. Marek