]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR c++/88368 - wrong 'use of deleted function'
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Feb 2019 02:00:29 +0000 (02:00 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Feb 2019 02:00:29 +0000 (02:00 +0000)
commitce7f22f1f01aed315d705c750a189d211ae54e41
treedd8f6590bbce03b4e8b1c01a6fae5791f01696f6
parentcfa86c5ebc839435491f6ab8f541eb44f02d6849
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269032 138bc75d-0d04-0410-961f-82ee72b054a4
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]