This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ia64 bootstrap failure again
- From: Richard Henderson <rth at redhat dot com>
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 21 Nov 2003 16:22:21 -0800
- Subject: Re: ia64 bootstrap failure again
- References: <1069427582.3413.71.camel@frodo.toronto.redhat.com>
On Fri, Nov 21, 2003 at 10:13:02AM -0500, Diego Novillo wrote:
> /home/cygnus/dnovillo/tree-ssa-02/src.ia64/libjava/java/lang/Class.java:156:
> internal compiler error: in int_mode_for_mode, at stor-layout.c:290
This lets compilation of libjava complete on ia64. I'm not sure why
this didn't show up on the other three targets I tested...
Make check still in progress, but I'm checking it in anyway,.
r~
* constants.c (build_constant_data_ref): Lay out the array type.
Index: constants.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/constants.c,v
retrieving revision 1.20.2.7
diff -u -r1.20.2.7 constants.c
--- constants.c 20 Nov 2003 23:36:17 -0000 1.20.2.7
+++ constants.c 22 Nov 2003 00:17:37 -0000
@@ -383,7 +383,16 @@
tree type;
tree decl_name = mangled_classname ("_CD_", current_class);
+ /* Build a type with unspecified bounds. The will make sure
+ that targets do the right thing with whatever size we end
+ up with at the end. Using bounds that are too small risks
+ assuming the data is in the small data section. */
type = build_array_type (ptr_type_node, NULL_TREE);
+
+ /* We need to lay out the type ourselves, since build_array_type
+ thinks the type is incomplete. */
+ layout_type (type);
+
decl = build_decl (VAR_DECL, decl_name, type);
TREE_STATIC (decl) = 1;
make_decl_rtl (decl, NULL);