This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/60720] clisp fails to build with -flto: internal compiler error: tree check: expected array_type, have record_type in array_ref_low_bound, at expr.c:6941
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 31 Mar 2014 12:48:54 +0000
- Subject: [Bug lto/60720] clisp fails to build with -flto: internal compiler error: tree check: expected array_type, have record_type in array_ref_low_bound, at expr.c:6941
- Auto-submitted: auto-generated
- References: <bug-60720-4 at http dot gcc dot gnu dot org/bugzilla/>
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;