The line number in the warning below points to the closing brace of the initializer expression making it difficult to find the offending line if the initializer is many lines long. I would like to suggest that the line number be that of the problem line (and perhaps include the column number as well, if possible, when there is more than one initializer per line).
$ cat t.cpp && g++ -Wall t.cpp /* 1 */ int main () /* 2 */ { /* 3 */ const struct { short i; } a[] = { /* 4 */ { 65535U }, /* 5 */ { 65536U } /* 6 */ }; /* 7 */ (void)&a; /* 8 */ } /* 9 */ t.cpp: In function 'int main()': t.cpp:6: warning: overflow in implicit constant conversion -- Summary: wrong line number in warning: overflow in implicit constant conversion Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sebor at roguewave dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31158