https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97890
Bug ID: 97890
Summary: Abstract virtual classes suddenly allowed as parameter
types ?
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
For this wrong C++ code:
struct S // abstract
{
int b;
virtual void f() = 0;
};
extern void g( struct S);
Suddenly seems to have started working sometime between 20201114
and 20201116.
/home/dcb/gcc/results.20201114/bin/gcc
nov18b.cc:9:24: error: cannot declare parameter to be of abstract type ‘S’
9 | extern void g( struct S);
| ^
nov18b.cc:2:8: note: because the following virtual functions are pure within
‘S’:
2 | struct S // abstract
| ^
nov18b.cc:6:22: note: ‘virtual void S::f()’
6 | virtual void f() = 0;
| ^
/home/dcb/gcc/results.20201116.valgrind/bin/gcc
Compiler dated 20201104 has git hash 8270a7238ba1b535
and compiler dated 20201116 has git hash 2f473f4b065d3cc0.
Accident or design ?