[Bug c++/95641] New: Bogus error message in the class base specifier
haoxintu at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Jun 11 15:26:06 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95641
Bug ID: 95641
Summary: Bogus error message in the class base specifier
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 bug.cc
class A {};
class B : virtual class A{};
In gcc-trunk
$g++ -c bug.cc
bug.cc:2:19: error: expected class-name before ‘class’
2 | class B : virtual class A{};
| ^~~~~
bug.cc:2:19: error: expected ‘{’ before ‘class’
bug.cc:2:25: error: redefinition of ‘class A’
2 | class B : virtual class A{};
| ^
bug.cc:1:7: note: previous definition of ‘class A’
1 | class A {};
| ^
bug.cc:2:1: error: multiple types in one declaration
2 | class B : virtual class A{};
| ^~~~~
There are four error messages, I guess some of them are bogus.
I tested bug.cc in other compilers, and they only give one message.
In clang : "error: expected class name",
In icc : "error: expected an identifier",
In msvc : " error C2518: keyword 'class' is invalid in a base class list;
expected a class name".
Reproduced in Godbolt : https://godbolt.org/z/KuEPNF
More information about the Gcc-bugs
mailing list