[Bug c++/90475] New: Diagnostic for designated initializer could be a lot better
barry.revzin at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue May 14 18:56:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90475
Bug ID: 90475
Summary: Diagnostic for designated initializer could be a lot
better
Product: gcc
Version: 9.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: barry.revzin at gmail dot com
Target Milestone: ---
gcc 8 and 9 have made dramatic improvements in diagnostics, but here's a case
where it could be a lot better: the "oops, I typoed my designated initializer"
case:
struct X { int i, j; };
X f() { return {.i=42, .k=17}; }
emits:
<source>: In function 'X f()':
<source>:3:29: error: could not convert '{42, 17}' from '<brace-enclosed
initializer list>' to 'X'
3 | X f() { return {.i=42, .k=17}; }
| ^
| |
| <brace-enclosed initializer list>
Compiler returned: 1
Similarly:
struct X { int i, j; };
void g(X );
void h() {
g({.i=42, .k=17});
}
emits:
<source>: In function 'void h()':
<source>:5:21: error: could not convert '{42, 17}' from '<brace-enclosed
initializer list>' to 'X'
5 | g({.i=42, .k=17});
| ^
| |
| <brace-enclosed initializer list>
Compiler returned: 1
Would be very cool if the diagnostic could somehow point to the "k"
initializer, rather than basically "I dunno what is this thing??"
(obviously not the most high priority thing, just a nice to have)
More information about the Gcc-bugs
mailing list