[Bug c++/87814] [9 Regression] ICE in in tsubst_copy, at cp/pt.c:15962 with range-v3
aoliva at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Dec 14 21:57:00 GMT 2018
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
More information about the Gcc-bugs
mailing list