https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71552
Bug ID: 71552 Summary: Confusing error for incorrect struct initialization Product: gcc Version: unknown Status: UNCONFIRMED Severity: minor Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: mpeg.blue at free dot fr Target Milestone: --- I'm using gcc version 6.1.1 20160511 (Ubuntu 6.1.1-3ubuntu11~14.04.1) Consider the following code. struct foo { const int *p; }; static const int i = 42; struct foo bar = { i }; /*** should be &i ***/ NOTA BENE: the initialization of bar is incorrect (because an int is provided, instead of a pointer to int) I expected an error message along the lines of "initializer for bar.p has an incompatible type" but instead, I got qoi.c:3:20: error: initializer element is not constant struct foo bar = { i }; /*** should be &i ***/ ^ qoi.c:3:20: note: (near initialization for 'bar.p') "initializer element is not constant" ? Is there a simple way to improve the error message?