[Bug c++/98031] New: missing the error message of undeclared label
tangyixuan at mail dot dlut.edu.cn
gcc-bugzilla@gcc.gnu.org
Fri Nov 27 13:26:33 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98031
Bug ID: 98031
Summary: missing the error message of undeclared label
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: tangyixuan at mail dot dlut.edu.cn
Target Milestone: ---
Hi, the following code has two errors. However, gcc only reports the second
error while ignoring the first one.
$ cat s.cpp
template<class T>
int fun(T i)
{
static void* labs[2] = { &&lab1, &&lab2 };
goto *(labs[i==0]);
lab1: return 1;
labs: return 2; //should report an error
return 0;
}
int main()
{ return lab1(1); } //error here
$ g++ -c s.cpp
s.cpp: In function ‘int main()’:
s.cpp:12:11: error: ‘lab1’ was not declared in this scope
12 | { return lab1(1); }
|
$ clang++ -c s.cpp
s.cpp:4:38: error: use of undeclared label 'lab2'
static void* labs[2] = { &&lab1, &&lab2 };
^
s.cpp:12:11: error: use of undeclared identifier 'lab1'
{ return lab1(1); }
^
2 errors generated.
More information about the Gcc-bugs
mailing list