[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.1.0 |4.0.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.1.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
--- Comment #10 from cvs-commit at gcc dot gnu dot org 2005-10-14 08:48 --- Subject: Bug 23620 CVSROOT:/cvs/gcc Module name:gcc Branch: gcc-4_0-branch Changes by: [EMAIL PROTECTED] 2005-10-14 08:48:02 Modified files: gcc/java : ChangeLog class.c Log message: PR java/23620 * class.c (make_class): Create empty binfo here. (set_super_info): Only create binfo if we have superclasses. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.1556.2.37&r2=1.1556.2.38 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/class.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.220.8.7&r2=1.220.8.8 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
--- Comment #9 from nathan at gcc dot gnu dot org 2005-10-14 08:48 --- fixed mainline and 4.0 2005-10-14 Nathan Sidwell <[EMAIL PROTECTED]> Wil Mahan <[EMAIL PROTECTED]> PR java/23620 * class.c (make_class): Create empty binfo here. (set_super_info): Only create binfo if we have superclasses. -- nathan at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
--- Comment #8 from cvs-commit at gcc dot gnu dot org 2005-10-14 08:46 --- Subject: Bug 23620 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-10-14 08:46:55 Modified files: gcc/java : ChangeLog class.c Log message: PR java/23620 * class.c (make_class): Create empty binfo here. (set_super_info): Only create binfo if we have superclasses. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&r1=1.1668&r2=1.1669 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/class.c.diff?cvsroot=gcc&r1=1.241&r2=1.242 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
--- Additional Comments From tromey at gcc dot gnu dot org 2005-09-21 14:29 --- I had to make the methods in B and C public in order to compile. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
-- What|Removed |Added AssignedTo|unassigned at gcc dot gnu |nathan at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2005-08-31 15:26:08 |2005-09-02 07:13:06 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-01 21:37 --- Then this was caused by: * class.c (make_class): Do not create binfo here. (set_super_info): Create it here. * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo. Nathan? -- What|Removed |Added CC||nathan at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
--- Additional Comments From wmahan at gmail dot com 2005-09-01 19:18 --- I think I found the root of the problem. In 3.4.x, make_class() in java/class.c looks like this: type = make_node (RECORD_TYPE); TYPE_BINFO (type) = make_tree_vec (BINFO_ELTS); MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC (type); but in 4.0.1 it becomes this: type = make_node (RECORD_TYPE); MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC (type); The crash was caused by TYPE_BINFO not being set for a certain type. I added the line TYPE_BINFO (type) = make_tree_binfo (0); to make_class(). This seems consistent with the changes made in 4.0, and it fixes the problem for me. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
--- Additional Comments From wmahan at gmail dot com 2005-08-31 16:23 --- I guess that is a bug in my test case. I didn't notice because it compiles fine with gcc 4.0.1 when A.class and A$AInt.class are not present. The problem seems to be that when check_inner_circular_reference() is looking for circular references, it segfaults when it gets to the tree for A, which has ->type.binfo == NULL. I'm not sure if that's supposed to happen. Here's a patch that fixes the bug for me, but it may just fix the symptom rather than the real problem. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620
[Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-31 15:26 --- Confirmed, this is a regression from 3.4.0 where this worked just fine. before 3.4.0, we rejected this with: C.java:2: error: Class `C' must override `C.methB()' with a public method in order to implement interface `B$BInt'. void methB() { } ^ 1 error Actually that is correct, we should error out, even fixing that bug I still get an ICE. I will report a bug for that one soon too. Back trace: #0 0x0805991c in check_inner_circular_reference (source=0xb7d35b80, target=0xb7d32b80) at parse.y:5375 #1 0x08059a15 in check_inner_circular_reference (source=0xb7d32e04, target=0xb7d32b80) at parse.y:5397 #2 0x08059a15 in check_inner_circular_reference (source=0xb7d32b80, target=0xb7d32b80) at parse.y:5397 #3 0x08066d99 in java_check_circular_reference () at parse.y:5445 #4 0x080cce1f in parse_source_file_3 () at /home/peshtigo/pinskia/src/gnu/gcc/src/gcc/java/jcf- parse.c:1020 #5 0x080d0a3d in java_parse_file (set_yydebug=0) at /home/peshtigo/pinskia/src/gnu/gcc/src/gcc/ java/jcf-parse.c:1286 -- What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed||1 Keywords||ice-on-valid-code Known to work||3.4.0 Last reconfirmed|-00-00 00:00:00 |2005-08-31 15:26:08 date|| Summary|Segfault compiling inner|[4.0/4.1 Regression] |interfaces |Segfault compiling inner ||interfaces http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23620