[Bug c++/96207] New: GCC accepts "delete" function definition inside a class member function
haoxintu at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Jul 15 14:58:45 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96207
Bug ID: 96207
Summary: GCC accepts "delete" function definition inside a
class member function
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Keywords: accepts-invalid
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: haoxintu at gmail dot com
Target Milestone: ---
Hi, all.
This code, test.cc, is an invalid code, GCC compiles it well, while other
mainstream compiles (clang,icc,and msvc) all reject it.
$cat test.cc
class A {
void foo1 () {
void foo2 () = delete ;
}
};
$g++ -c test.cc
test.cc: In member function ‘void A::foo1()’:
test.cc:3:20: warning: declaration of ‘void foo2()’ has ‘extern’ and is
initialized
3 | void foo2 () = delete ;
| ^
GCC only emits a warning message (I also doubt that the meaning of this
message) and then accepts it.
Every Clang version from 6.x onwards behaves the same.
Thanks,
Haoxin
More information about the Gcc-bugs
mailing list