https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87814
--- Comment #8 from Alexandre Oliva <aoliva at gcc dot gnu.org> --- Author: aoliva Date: Fri Dec 14 21:57:07 2018 New Revision: 267155 URL: https://gcc.gnu.org/viewcvs?rev=267155&root=gcc&view=rev Log: [PR c++/87814] undefer deferred noexcept on tsubst if request tsubst_expr and tsubst_copy_and_build are not expected to handle DEFERRED_NOEXCEPT exprs, but if tsubst_exception_specification takes a DEFERRED_NOEXCEPT expr with !defer_ok, it just passes the expr on for tsubst_copy_and_build to barf. This patch arranges for tsubst_exception_specification to combine the incoming args with those already stored in a DEFERRED_NOEXCEPT, and then substitute them into the pattern, when retaining a deferred noexcept is unacceptable. for gcc/cp/ChangeLog PR c++/87814 * pt.c (tsubst_exception_specification): Handle DEFERRED_NOEXCEPT with !defer_ok. for gcc/testsuite/ChangeLog PR c++/87814 * g++.dg/cpp1z/pr87814.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp1z/pr87814.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog