PR c++/81359 - Unparsed NSDMI error from SFINAE context.
commitb9e17a4abb8eb2a41a7872fc4961ce4939312977
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Aug 2017 18:32:02 +0000 (9 18:32 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Aug 2017 18:32:02 +0000 (9 18:32 +0000)
tree1ff0784160f8c2d88777310405e7581704bfedb3
parente6e4aafad9a284f6180bcd55fcfdebf3391df050
PR c++/81359 - Unparsed NSDMI error from SFINAE context.

* init.c (get_nsdmi): Add complain parm.
* typeck2.c (digest_nsdmi_init): Add complain parm.
(process_init_constructor_record): Pass complain to get_nsdmi.
* pt.c (maybe_instantiate_noexcept): Add complain parm, return bool.
* method.c (get_defaulted_eh_spec): Add complain parm.  Pass it into
synthesized_method_walk.
(synthesized_method_walk): Adjust.
(walk_field_subobs): Pass complain to get_nsdmi.
(defaulted_late_check): Skip other checks if deleted.
* decl2.c (mark_used): Pass complain to maybe_instantiate_noexcept.
* call.c (build_aggr_conv): Pass complain to get_nsdmi.
* parser.c (defarg_location): New.
* error.c (location_of): Use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250994 138bc75d-0d04-0410-961f-82ee72b054a4
15 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl2.c
gcc/cp/error.c
gcc/cp/init.c
gcc/cp/method.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/cp/typeck2.c
gcc/testsuite/g++.dg/cpp0x/nsdmi-defer6.C
gcc/testsuite/g++.dg/cpp0x/nsdmi-template14.C
gcc/testsuite/g++.dg/cpp0x/nsdmi10.C
gcc/testsuite/g++.dg/cpp0x/sfinae59.C [new file with mode: 0644]