This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ia64 bootstrap failure again


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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]