Bug 25368 - ICE in make_class_data
Summary: ICE in make_class_data
Status: RESOLVED WORKSFORME
Alias: None
Product: gcc
Classification: Unclassified
Component: java (show other bugs)
Version: 4.2.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-12-12 13:22 UTC by Jakub Jelinek
Modified: 2005-12-12 15:44 UTC (History)
3 users (show)

See Also:
Host:
Target: x86_64-linux
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
org.tar.bz2 (60.66 KB, application/octet-stream)
2005-12-12 13:23 UTC, Jakub Jelinek
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jakub Jelinek 2005-12-12 13:22:29 UTC
After unpack org.tar.bz2 I'll attach into an empty directory:
.../jc1 org/gnu/atk/AtkObject.java -fuse-boehm-gc -fnon-call-exceptions -O2 \
-fjni -fclasspath=.:/usr/share/java/libgcj-4.1.0.jar -fPIC -o x.s
in a checking buid this dies with:
org/gnu/atk/AtkObject.java:21: internal compiler error: tree check: expected class 'expression', have 'constant' (integer_cst) in make_class_data, at java/class.c:1581
and in --enable-checking=release build dies with:
org/gnu/atk/AtkObject.java:21: internal compiler error: in lhd_incomplete_type_error, at langhooks.c:213

The former is ICE on:
1581      decl = TREE_OPERAND (this_class_addr, 0);
which fails, because this_class_addr is not an expression, but null_pointer_node.
The non-checking one is:
1799      PUSH_FIELD_VALUE (cons, "size_in_bytes",
1800                        (flag_indirect_dispatch
1801                         ? integer_minus_one_node
1802                         : size_in_bytes (type)));
where size_in_bytes is called on incomplete type:
 <record_type 0x2aaaaab42d10 org.gnu.atk.AtkObject sizes-gimplified tree_2 type_2 type_3 type_4 type_5 VOID size <error_mark 0x2aaaaaae03a0>
    align 8 symtab 0 alias set -1
    pointer_to_this <pointer_type 0x2aaaaab42dc0> chain <type_decl 0x2aaaaaaf7b60 org.gnu.atk.AtkObject>>
Comment 1 Jakub Jelinek 2005-12-12 13:23:43 UTC
Created attachment 10457 [details]
org.tar.bz2
Comment 2 Andrew Haley 2005-12-12 15:44:36 UTC
aph@zorro ppzz]$ /home/aph/gcc/trunk/obj-i686-unknown-linux-gnu/gcc/jc1 org/gnu/atk/AtkObject.java -fuse-boehm-gc -fnon-call-exceptions -O2 -fjni -fclasspath=.:/usr/share/java/libgcj-4.1.0.jar -fPIC -o x.s -quiet
./org/gnu/gdk/Device.java:83: warning: The class ‘org.gnu.glib.List’ has been deprecated.
    public static org.gnu.glib.List getDevicesList(){
                     ^
1 warning

Comment 3 Andrew Haley 2005-12-13 09:41:50 UTC
Subject: Bug 25368

Author: aph
Date: Tue Dec 13 09:41:45 2005
New Revision: 108474

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108474
Log:
2005-12-13  Andrew Haley  <aph@redhat.com>

        PR java/25366
        PR java/25368
        * class.c (maybe_layout_super_class): Update current_class before
        calling do_resolve_class.


Modified:
    trunk/gcc/java/ChangeLog
    trunk/gcc/java/class.c

Comment 4 Andrew Haley 2005-12-13 09:44:40 UTC
Subject: Bug 25368

Author: aph
Date: Tue Dec 13 09:44:35 2005
New Revision: 108475

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108475
Log:
2005-12-13  Andrew Haley  <aph@redhat.com>

        PR java/25366
        PR java/25368
        * class.c (maybe_layout_super_class): Update current_class before
        calling do_resolve_class.



Modified:
    branches/gcc-4_1-branch/gcc/java/ChangeLog
    branches/gcc-4_1-branch/gcc/java/class.c