[Bug c++/53158] New: [C++11] Bogus error in loop condition
zeratul976 at hotmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Apr 29 04:42:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53158
Bug #: 53158
Summary: [C++11] Bogus error in loop condition
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: zeratul976@hotmail.com
For the following code:
int main()
{
auto a = []() { return true; };
auto b = []() { return a(); };
int c, d;
while (b() && c < d)
{
}
}
GCC produces the following errors:
test.cpp: In lambda function:
test.cpp:4:28: error: 'a' is not captured
auto b = []() { return a(); };
^
test.cpp: In function 'int main()':
test.cpp:6:23: error: invalid operands of types 'void' and 'int' to binary
'operator!='
while (b() && c < d)
^
The first error is correct, and fixing it makes both errors go away. However,
the second error is bogus: operator!= is not being called anywhere.
More information about the Gcc-bugs
mailing list