http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60615
Bug ID: 60615 Summary: bad location in error from initializer Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: tromey at gcc dot gnu.org Consider this source: struct v { int (*f1) (int); int (*f2) (); int (*f3) (int); int (*f4) (int); }; int func(int x) { return x; } int fv() { return 23; } struct v inst = { func, func, func, func }; // Line 17 Compile it with g++: barimba. g++ --syntax-only pr.cc pr.cc:17:1: error: invalid conversion from ‘int (*)(int)’ to ‘int (*)()’ [-fpermissive] }; // Line 17 ^ Note that the error refers to line 17 and does not mention the field name at all. This is very inconvenient when one has a large struct of function pointers -- it can be quite hard to find the actual location of the problem.