https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98700
Bug ID: 98700
Summary: Infinite stream of error messages from bad concept
code
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: igfoo at github dot com
Target Milestone: ---
With `test.cpp` containing:
concept con = requires(int a, int b) { { __a = __b }
with both
g++-10 (Ubuntu 10.2.0-5ubuntu1~20.04) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
and
g++ (GCC) 11.0.0 20210115 (experimental)
Copyright © 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
(built from master at b36c9cd09472c8efb8405726b7cc94fa4ae7059f)
Running "g++ -std=c++20 -c test.cpp" gives me an infinite stream of errors. For
version 11, it begins:
test.cpp:1:1: warning: C++20 concept definition syntax is ‘concept <name> =
<expr>’
1 | concept con = requires(int a, int b) { { __a = __b }
| ^~~~~~~
test.cpp:1:1: error: a non-template variable cannot be ‘concept’
test.cpp:1:42: error: ‘__a’ was not declared in this scope
1 | concept con = requires(int a, int b) { { __a = __b }
| ^~~
test.cpp:1:48: error: ‘__b’ was not declared in this scope
1 | concept con = requires(int a, int b) { { __a = __b }
| ^~~
test.cpp:1:53: error: expected ‘;’ at end of input
1 | concept con = requires(int a, int b) { { __a = __b }
| ^
| ;
test.cpp:1:53: error: expected primary-expression at end of input
test.cpp:1:53: error: expected ‘;’ at end of input
1 | concept con = requires(int a, int b) { { __a = __b }
| ^
| ;
test.cpp:1:53: error: expected primary-expression at end of input
test.cpp:1:53: error: expected ‘;’ at end of input
1 | concept con = requires(int a, int b) { { __a = __b }
| ^
| ;
test.cpp:1:53: error: expected primary-expression at end of input
test.cpp:1:53: error: expected ‘;’ at end of input
1 | concept con = requires(int a, int b) { { __a = __b }
| ^
| ;
test.cpp:1:53: error: expected primary-expression at end of input
test.cpp:1:53: error: expected ‘;’ at end of input
1 | concept con = requires(int a, int b) { { __a = __b }
| ^
| ;