PR c++/88368 - wrong 'use of deleted function'
authorJason Merrill <jason@redhat.com>
Wed, 20 Feb 2019 02:00:29 +0000 (21:00 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 20 Feb 2019 02:00:29 +0000 (21:00 -0500)
commit9d35a27a8353b57ed11fa1cb7d747edf1c4faa01
treedd8f6590bbce03b4e8b1c01a6fae5791f01696f6
parent8dca1dc386b4b87558ed80b12a3d700908baeac0
PR c++/88368 - wrong 'use of deleted function'

Since my patch for 81359 allowed us to signal failure on return from
maybe_instantiate_noexcept, we no longer need to turn an error into
noexcept(false).  We also need to handle NSDMI instantiation errors under
synthesized_method_walk.  This change caused some instantiation context
notes to be lost in the testsuite, so I added push_tinst_level to
get_defaulted_eh_spec to restore that context.

* method.c (walk_field_subobs): Remember errors from get_nsdmi.
(get_defaulted_eh_spec): Call push_tinst_level.
* pt.c (maybe_instantiate_noexcept): Keep error_mark_node.
* typeck2.c (merge_exception_specifiers): Handle error_mark_node.

From-SVN: r269032
gcc/cp/ChangeLog
gcc/cp/method.c
gcc/cp/pt.c
gcc/cp/typeck2.c
gcc/testsuite/g++.dg/cpp0x/nsdmi3.C
gcc/testsuite/g++.dg/ext/is_constructible3.C [new file with mode: 0644]