[Bug c++/101859] New: Misleading error message in designated initializers
hewillk at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Aug 11 07:54:21 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101859
Bug ID: 101859
Summary: Misleading error message in designated initializers
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: hewillk at gmail dot com
Target Milestone: ---
struct Cat { const char* name; };
struct Zoo { Cat cat; };
int cat;
Zoo zoo{.cat = cat};
Clang rejects it with:
<source>:5:16: error: cannot initialize a member subobject of type 'const char
*' with an lvalue of type 'int'
Zoo zoo{.cat = cat};
^~~
MSVC rejects it with:
source>(5): error C2440: 'initializing': cannot convert from 'int' to 'const
char *'
However, GCC rejects it with:
<source>:5:19: error: 'Cat' has no non-static data member named 'cat'
5 | Zoo zoo{.cat = cat};
| ^
More information about the Gcc-bugs
mailing list