http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60720
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-03-31 Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- It's module_t modules[] = { { "clisp", ... { "regexp", &module__regexp__subr_tab.subrs[0], &module__regexp__subr_tab_size, &module__regexp__object_tab[0], &module__regexp__object_tab_size, 0, &module__regexp__subr_tab_initdata[0], &module__regexp__object_tab_initdata[0], &module__regexp__init_function_1, &module__regexp__init_function_2, &module__regexp__fini_function , ((void *)0) }, ... using &module__regexp__object_tab[0] (an array-ref), and declared as extern gcv_object_t module__regexp__object_tab[]; but defined in the other module as struct module__regexp__object_tab_t { gcv_object_t _object_Kboolean; gcv_object_t _object_Kend; gcv_object_t _object_Kextended; gcv_object_t _object_Kignore_case; gcv_object_t _object_Knewline; gcv_object_t _object_Knosub; gcv_object_t _object_Knotbol; gcv_object_t _object_Knoteol; gcv_object_t _object_Kreturn_type; gcv_object_t _object_Kstart; gcv_object_t _object_regexp__make_match_boa; gcv_object_t _object__23_28_29; } module__regexp__object_tab; thus no array for the actual decl. Reduced testcase: extern int x[]; int *foo[] = { &x[0] }; ---- int x;