From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 1A329383F879; Fri, 7 Aug 2020 17:04:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1A329383F879 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1596819899; bh=tCQm2tg/Yb+0F+NpuoGOvec3rCljgE8R2rI1FSDvVSc=; h=From:To:Subject:Date:In-Reply-To:References:From; b=S1q2dl8Ed6lqWHv7HOByFopUh6cXwafCqdOhmB/lwA9yrUM+c+QOh8RXdOQFhyybM r/kCB3d6G5ESFdavDkR0hUfCLRvyhMLrNwF1GOQxd5YAUp7aMxnxZPuMUQl5ExcsSc w8UV+oKTK3QihJpK/xAH3sqPrfGnNghc++RA6u94= From: "redi at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/80750] [concepts] noexcept specifier operands are allowed but ignored in compound requirements Date: Fri, 07 Aug 2020 17:04:58 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: c++-concepts X-Bugzilla-Keywords: accepts-invalid X-Bugzilla-Severity: normal X-Bugzilla-Who: redi at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Resolution: FIXED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 10.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status resolution target_milestone keywords Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2020 17:04:59 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D80750 Jonathan Wakely changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED Target Milestone|--- |10.0 Keywords| |accepts-invalid --- Comment #3 from Jonathan Wakely --- This seems to be fixed, the operand of the noexcept is diagnosed now: 80750.C:2:45: error: expected ';' before '(' token 2 | concept C =3D requires { { T::smf() } noexcept(false); }; | ^ | ; 80750.C:9:15: error: static assertion failed 9 | static_assert(C); | ^~~~~ 80750.C:9:15: note: constraints not satisfied 80750.C:2:9: required by the constraints of 'template concept co= nst bool C' 80750.C:2:13: in requirements [with T =3D S1] 80750.C:2:32: note: 'S1::smf()' is not 'noexcept' 2 | concept C =3D requires { { T::smf() } noexcept(false); }; | ~~~~~~^~ It started to be rejected with r276764 "Update the concepts implementation = to conform to C++20" Here's an updated testcase which was previously accepted and is now rejecte= d: template concept C =3D requires { { T::smf() } noexcept(false); }; struct S1 { static void smf(); }; struct S2 { static void smf() noexcept; }; static_assert(!C);=