[Bug c++/69215] New: Improve diagnostic for 'for(i : v)'
rs2740 at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Jan 10 05:12:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69215
Bug ID: 69215
Summary: Improve diagnostic for 'for(i : v)'
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: enhancement
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Something like
#include <vector>
int main(){
std::vector<int> v;
for(i : v) {}
}
produces a storm of not-very-enlightening errors on trunk:
prog.cc: In function 'int main()':
prog.cc:5:11: error: found ':' in nested-name-specifier, expected '::'
for(i : v) {}
^
prog.cc:5:9: error: 'i' has not been declared
for(i : v) {}
^
prog.cc:6:1: error: expected primary-expression before '}' token
}
^
prog.cc:6:1: error: expected ';' before '}' token
prog.cc:6:1: error: expected primary-expression before '}' token
prog.cc:6:1: error: expected ')' before '}' token
prog.cc:6:1: error: expected primary-expression before '}' token
in contrast to clang's:
prog.cc:5:9: error: range-based for loop requires type for loop variable
for(i : v) {}
^
Perhaps the code implementing N3994, removed by r229632, can be repurposed
instead to produce a better error message?
More information about the Gcc-bugs
mailing list