PR c++/89036 reports an ICE due to this assertion failing 1136 /* A class should never have more than one destructor. */ 1137 gcc_assert (!current_fns || via_using || !DECL_DESTRUCTOR_P (method)); on this template with a pair of dtors, with mutually exclusive "requires" clauses: template<typename T> struct Y { ~Y() requires(true) = default; ~Y() requires(false) {} }; Nathan introduced this assertion as part of: ca9219bf18c68a001d62ecb981bc9176b0feaf12 (aka r251340): 2017-08-24 Nathan Sidwell <nathan@acm.org> Conversion operators kept on single overload set which, amongst other changes to add_method had this: /* A class should never have more than one destructor. */ - if (current_fns && DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (method)) - return false; + gcc_assert (!current_fns || !DECL_DESTRUCTOR_P (method)); The following patch drops the assertion (I already had to generalize the assertion in r268041 to fix PR c++/88699). gcc/cp/ChangeLog: PR c++/89036 * class.c (add_method): Drop destructor assertion. gcc/testsuite/ChangeLog: PR c++/89036 * g++.dg/concepts/pr89036.C: New test. From-SVN: r268847
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
regress | Loading commit data... | |
abbrev1.C | Loading commit data... | |
abbrev2.C | Loading commit data... | |
alias1.C | Loading commit data... | |
alias2.C | Loading commit data... | |
alias3.C | Loading commit data... | |
alias4.C | Loading commit data... | |
auto1.C | Loading commit data... | |
auto3.C | Loading commit data... | |
auto4.C | Loading commit data... | |
class-deduction1.C | Loading commit data... | |
class-deduction2.C | Loading commit data... | |
class.C | Loading commit data... | |
class1.C | Loading commit data... | |
class2.C | Loading commit data... | |
class3.C | Loading commit data... | |
class4.C | Loading commit data... | |
class5.C | Loading commit data... | |
class6.C | Loading commit data... | |
constrained-parm.C | Loading commit data... | |
debug1.C | Loading commit data... | |
decl-diagnose.C | Loading commit data... | |
deduction-constraint1.C | Loading commit data... | |
diagnostic1.C | Loading commit data... | |
disjunction1.C | Loading commit data... | |
dr1430.C | Loading commit data... | |
equiv.C | Loading commit data... | |
equiv2.C | Loading commit data... | |
explicit-inst1.C | Loading commit data... | |
explicit-inst2.C | Loading commit data... | |
explicit-inst3.C | Loading commit data... | |
explicit-inst4.C | Loading commit data... | |
explicit-spec1.C | Loading commit data... | |
explicit-spec2.C | Loading commit data... | |
explicit-spec3.C | Loading commit data... | |
explicit-spec4.C | Loading commit data... | |
explicit-spec5.C | Loading commit data... | |
explicit-spec6.C | Loading commit data... | |
expression.C | Loading commit data... | |
expression2.C | Loading commit data... | |
expression3.C | Loading commit data... | |
feature-macro.C | Loading commit data... | |
fn-concept1.C | Loading commit data... | |
fn-concept2.C | Loading commit data... | |
fn-generic-member-ool.C | Loading commit data... | |
fn1.C | Loading commit data... | |
fn10.C | Loading commit data... | |
fn2.C | Loading commit data... | |
fn3.C | Loading commit data... | |
fn4.C | Loading commit data... | |
fn5.C | Loading commit data... | |
fn6.C | Loading commit data... | |
fn7.C | Loading commit data... | |
fn8.C | Loading commit data... | |
fn9.C | Loading commit data... | |
friend1.C | Loading commit data... | |
friend2.C | Loading commit data... | |
generic-fn-err.C | Loading commit data... | |
generic-fn.C | Loading commit data... | |
iconv1.C | Loading commit data... | |
inherit-ctor1.C | Loading commit data... | |
inherit-ctor2.C | Loading commit data... | |
inherit-ctor3.C | Loading commit data... | |
inherit-ctor4.C | Loading commit data... | |
intro1.C | Loading commit data... | |
intro2.C | Loading commit data... | |
intro3.C | Loading commit data... | |
intro4.C | Loading commit data... | |
intro5.C | Loading commit data... | |
intro6.C | Loading commit data... | |
intro7.C | Loading commit data... | |
lambda1.C | Loading commit data... | |
locations1.C | Loading commit data... | |
member-concept.C | Loading commit data... | |
memfun-err.C | Loading commit data... | |
memfun.C | Loading commit data... | |
memfun2.C | Loading commit data... | |
memtmpl1.C | Loading commit data... | |
partial-concept-id1.C | Loading commit data... | |
partial-concept-id2.C | Loading commit data... | |
partial-spec.C | Loading commit data... | |
partial-spec2.C | Loading commit data... | |
partial-spec3.C | Loading commit data... | |
partial-spec4.C | Loading commit data... | |
partial-spec5.C | Loading commit data... | |
partial-spec6.C | Loading commit data... | |
placeholder1.C | Loading commit data... | |
placeholder2.C | Loading commit data... | |
placeholder3.C | Loading commit data... | |
placeholder4.C | Loading commit data... | |
placeholder5.C | Loading commit data... | |
placeholder6.C | Loading commit data... | |
pr58500.C | Loading commit data... | |
pr58534.C | Loading commit data... | |
pr58535.C | Loading commit data... | |
pr58536.C | Loading commit data... | |
pr58548.C | Loading commit data... | |
pr58549.C | Loading commit data... | |
pr60052.C | Loading commit data... | |
pr60053.C | Loading commit data... | |
pr60064.C | Loading commit data... | |
pr60065.C | Loading commit data... | |
pr60377.C | Loading commit data... | |
pr60390.C | Loading commit data... | |
pr60391.C | Loading commit data... | |
pr60573.C | Loading commit data... | |
pr65552.C | Loading commit data... | |
pr65575.C | Loading commit data... | |
pr65634.C | Loading commit data... | |
pr65636.C | Loading commit data... | |
pr65681.C | Loading commit data... | |
pr65848.C | Loading commit data... | |
pr65854.C | Loading commit data... | |
pr66091.C | Loading commit data... | |
pr67249.C | Loading commit data... | |
pr67544.C | Loading commit data... | |
pr67595.C | Loading commit data... | |
pr67655.C | Loading commit data... | |
pr67656.C | Loading commit data... | |
pr68434.C | Loading commit data... | |
pr68683.C | Loading commit data... | |
pr71127.C | Loading commit data... | |
pr71128.C | Loading commit data... | |
pr71131.C | Loading commit data... | |
pr71368.C | Loading commit data... | |
pr71385.C | Loading commit data... | |
pr71965.C | Loading commit data... | |
pr80471.C | Loading commit data... | |
pr84330.C | Loading commit data... | |
pr84423-1.C | Loading commit data... | |
pr84423-2.C | Loading commit data... | |
pr84979-2.C | Loading commit data... | |
pr84979-3.C | Loading commit data... | |
pr84979.C | Loading commit data... | |
pr84980.C | Loading commit data... | |
pr85065.C | Loading commit data... | |
pr85265.C | Loading commit data... | |
pr87768.C | Loading commit data... | |
pr89036.C | Loading commit data... | |
req-neg1.C | Loading commit data... | |
req1.C | Loading commit data... | |
req10.C | Loading commit data... | |
req11.C | Loading commit data... | |
req12.C | Loading commit data... | |
req13.C | Loading commit data... | |
req14.C | Loading commit data... | |
req15.C | Loading commit data... | |
req16.C | Loading commit data... | |
req17.C | Loading commit data... | |
req18.C | Loading commit data... | |
req19.C | Loading commit data... | |
req2.C | Loading commit data... | |
req20.C | Loading commit data... | |
req3.C | Loading commit data... | |
req4.C | Loading commit data... | |
req5.C | Loading commit data... | |
req6.C | Loading commit data... | |
req7.C | Loading commit data... | |
req8.C | Loading commit data... | |
req9.C | Loading commit data... | |
template-parm1.C | Loading commit data... | |
template-parm10.C | Loading commit data... | |
template-parm11.C | Loading commit data... | |
template-parm12.C | Loading commit data... | |
template-parm2.C | Loading commit data... | |
template-parm3.C | Loading commit data... | |
template-parm4.C | Loading commit data... | |
template-parm5.C | Loading commit data... | |
template-parm6.C | Loading commit data... | |
template-parm7.C | Loading commit data... | |
template-parm8.C | Loading commit data... | |
template-parm9.C | Loading commit data... | |
template-template-parm1.C | Loading commit data... | |
traits1.C | Loading commit data... | |
traits2.C | Loading commit data... | |
var-concept1.C | Loading commit data... | |
var-concept2.C | Loading commit data... | |
var-concept3.C | Loading commit data... | |
var-concept4.C | Loading commit data... | |
var-concept5.C | Loading commit data... | |
var-concept6.C | Loading commit data... | |
var-concept7.C | Loading commit data... | |
var-templ1.C | Loading commit data... | |
var-templ2.C | Loading commit data... | |
var-templ3.C | Loading commit data... | |
variadic1.C | Loading commit data... | |
variadic2.C | Loading commit data... | |
variadic3.C | Loading commit data... | |
variadic4.C | Loading commit data... |