public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/95564] New: GCC rejects lambda expression with "noexcept(1+1)"
@ 2020-06-06 16:18 haoxintu at gmail dot com
2020-06-09 23:04 ` [Bug c++/95564] " mpolacek at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: haoxintu at gmail dot com @ 2020-06-06 16:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95564
Bug ID: 95564
Summary: GCC rejects lambda expression with "noexcept(1+1)"
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: haoxintu at gmail dot com
Target Milestone: ---
This code test.cc
int main(){
auto a = [ & ] (...) noexcept(1+1) {};
return 0;
}
$g++-trunk test.cc
test.cc:2:38: error: narrowing conversion of '2' from 'int' to 'bool'
[-Wnarrowing]
2 | auto a = [ & ] (...) noexcept(1+1) {};
|
GCC fails to compile it, while clang, icc, or msvc accept it.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/95564] GCC rejects lambda expression with "noexcept(1+1)"
2020-06-06 16:18 [Bug c++/95564] New: GCC rejects lambda expression with "noexcept(1+1)" haoxintu at gmail dot com
@ 2020-06-09 23:04 ` mpolacek at gcc dot gnu.org
2021-12-09 6:51 ` pinskia at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2020-06-09 23:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95564
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mpolacek at gcc dot gnu.org
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
There was some discussion on the Core C++ mailing list about whether a
conversion to bool should be narrowing, and though opinions differed, I think
gcc isn't incorrect in rejecting this code.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/95564] GCC rejects lambda expression with "noexcept(1+1)"
2020-06-06 16:18 [Bug c++/95564] New: GCC rejects lambda expression with "noexcept(1+1)" haoxintu at gmail dot com
2020-06-09 23:04 ` [Bug c++/95564] " mpolacek at gcc dot gnu.org
@ 2021-12-09 6:51 ` pinskia at gcc dot gnu.org
2021-12-16 10:17 ` de34 at live dot cn
2024-01-19 18:47 ` jason at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-12-09 6:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95564
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=87724
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
GCC is inconsitent here. with static_assert and constexpr GCC accepts it (PR
87724) while rejects it for noexcept.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/95564] GCC rejects lambda expression with "noexcept(1+1)"
2020-06-06 16:18 [Bug c++/95564] New: GCC rejects lambda expression with "noexcept(1+1)" haoxintu at gmail dot com
2020-06-09 23:04 ` [Bug c++/95564] " mpolacek at gcc dot gnu.org
2021-12-09 6:51 ` pinskia at gcc dot gnu.org
@ 2021-12-16 10:17 ` de34 at live dot cn
2024-01-19 18:47 ` jason at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: de34 at live dot cn @ 2021-12-16 10:17 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95564
Jiang An <de34 at live dot cn> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |de34 at live dot cn
--- Comment #3 from Jiang An <de34 at live dot cn> ---
(In reply to Andrew Pinski from comment #2)
> GCC is inconsitent here. with static_assert and constexpr GCC accepts it (PR
> 87724) while rejects it for noexcept.
Currently narrowing conversions are still forbidden in noexcept and explicit
specifiers.
The inconsistency is acknowledged in C++23 (WG21-P1401R5), but it seems that
P1401 is not a DR, as the related CWG 2320 is closed as extension. I don't know
whether we should reject narrowing conversions in static_assert/if constexpr in
earlier modes.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/95564] GCC rejects lambda expression with "noexcept(1+1)"
2020-06-06 16:18 [Bug c++/95564] New: GCC rejects lambda expression with "noexcept(1+1)" haoxintu at gmail dot com
` (2 preceding siblings ...)
2021-12-16 10:17 ` de34 at live dot cn
@ 2024-01-19 18:47 ` jason at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: jason at gcc dot gnu.org @ 2024-01-19 18:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95564
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jason at gcc dot gnu.org
Resolution|--- |INVALID
Status|UNCONFIRMED |RESOLVED
--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Jiang An from comment #3)
> (In reply to Andrew Pinski from comment #2)
> > GCC is inconsitent here. with static_assert and constexpr GCC accepts it (PR
> > 87724) while rejects it for noexcept.
>
> Currently narrowing conversions are still forbidden in noexcept and explicit
> specifiers.
>
> The inconsistency is acknowledged in C++23 (WG21-P1401R5), but it seems that
> P1401 is not a DR, as the related CWG 2320 is closed as extension. I don't
> know whether we should reject narrowing conversions in static_assert/if
> constexpr in earlier modes.
Narrowing conversions were fine in earlier standards, it was an accidental
change that made them ill-formed, which was fixed.
Clang now also rejects the testcase.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-01-19 18:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-06 16:18 [Bug c++/95564] New: GCC rejects lambda expression with "noexcept(1+1)" haoxintu at gmail dot com
2020-06-09 23:04 ` [Bug c++/95564] " mpolacek at gcc dot gnu.org
2021-12-09 6:51 ` pinskia at gcc dot gnu.org
2021-12-16 10:17 ` de34 at live dot cn
2024-01-19 18:47 ` jason at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).