http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48819

--- Comment #7 from rguenther at suse dot de <rguenther at suse dot de> 
2011-04-29 12:40:19 UTC ---
On Fri, 29 Apr 2011, ro at CeBiTec dot Uni-Bielefeld.DE wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48819
> 
> --- Comment #6 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot 
> Uni-Bielefeld.DE> 2011-04-29 12:32:34 UTC ---
> > --- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 
> > 2011-04-29 10:44:54 UTC ---
> > Issues may arise if build_int_cst is called with NULL_TREE and the value
> > is using all HOST_WIDE_INT bits (I suppose 64 on sparc-sun-solaris2?) but
> 
> Indeed.
> 
> > I'm not sure what _CD_ArrayStore is.
> 
> It's contructed in gcc/java/constants.c (build_constant_data_ref).
> 
> > If the patch helps the following should point to the bug in the Java 
> > frontend:
> 
> I get
> 
> In file included from <built-in>:3:0:
> ArrayStore.java:51:0: internal compiler error: in build_int_cst, at 
> tree.c:1017
> 
> with the following stacktrace:
> 
> #0  fancy_abort (file=0x910608 "/var/gcc/reghunt/trunk/gcc/tree.c", 
> line=1017, 
>     function=0x912a28 "build_int_cst")
>     at /var/gcc/reghunt/trunk/gcc/diagnostic.c:893
> #1  0x005fbc18 in build_int_cst (type=0x0, low=562971428257792)
>     at /var/gcc/reghunt/trunk/gcc/tree.c:1017
> #2  0x000da1cc in build_constants_constructor ()
>     at /var/gcc/reghunt/trunk/gcc/java/constants.c:547
> #3  0x000b57c8 in make_class_data (type=0xfef33620)
>     at /var/gcc/reghunt/trunk/gcc/java/class.c:2059
> #4  0x000bba4c in finish_class ()
>     at /var/gcc/reghunt/trunk/gcc/java/class.c:2261
> #5  0x000eeed0 in parse_class_file ()
>     at /var/gcc/reghunt/trunk/gcc/java/jcf-parse.c:1662
> #6  0x000ef34c in parse_zip_file_entries ()
>     at /var/gcc/reghunt/trunk/gcc/java/jcf-parse.c:2103
> #7  0x000f021c in java_parse_file ()
>     at /var/gcc/reghunt/trunk/gcc/java/jcf-parse.c:1933
> #8  0x00440868 in compile_file () at /var/gcc/reghunt/trunk/gcc/toplev.c:579
> #9  do_compile () at /var/gcc/reghunt/trunk/gcc/toplev.c:1913
> #10 0x0044137c in toplev_main (argc=22, argv=0xffbff3b4)
>     at /var/gcc/reghunt/trunk/gcc/toplev.c:1976
> #11 0x000a5744 in _start ()

Which shows

          CONSTRUCTOR_PREPEND_VALUE (d,
                                     fold_convert (ptr_type_node,
                                                   (build_int_cst 
(NULL_TREE,

temp))));

ick.  So, I suppose

         CONSTRUCTOR_PREPEND_VALUE (d, build_int_cst (ptr_type_node, 
temp));

would fix it as well.  Patch is obvious if it works for your testcase.

Richard.

Reply via email to