public inbox for java-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug java/23620] New: Segfault compiling inner interfaces
@ 2005-08-29  9:44 wmahan at gmail dot com
  2005-08-30 10:56 ` [Bug java/23620] " pinskia at gcc dot gnu dot org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: wmahan at gmail dot com @ 2005-08-29  9:44 UTC (permalink / raw)
  To: java-prs

I'm getting an ICE with gcc 4.0.1 that I've reduced to the following test case
with three classes, in A.java, B.java, and C.java, respectively:

public class A  {
    public interface AInt { void methA(); }
}
public class B implements A.AInt {
    void methA() { }
    public interface BInt { void methB(); }
}
public class C implements B.BInt {
    void methB() { }
}

$ gcj -C A.java
$ gcj -C B.java
$ gcj -C C.java
C.java:0: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see <URL:file:///usr/share/doc/gcc-4.0/README.Bugs>.

However, doing

$ gcj -C A.java B.java C.java

gives no error.

Sorry if this is already known, but I couldn't find a similar bug already reported.

$ gcc-4.0 -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls
--without-included-gettext --enable-threads=posix --program-suffix=-4.0
--enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu
--enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr
--disable-werror --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.1 (Debian 4.0.1-2)

-- 
           Summary: Segfault compiling inner interfaces
           Product: gcc
           Version: 4.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: wmahan at gmail dot com
                CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
                    dot org


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug java/23620] Segfault compiling inner interfaces
  2005-08-29  9:44 [Bug java/23620] New: Segfault compiling inner interfaces wmahan at gmail dot com
@ 2005-08-30 10:56 ` pinskia at gcc dot gnu dot org
  2005-08-31 15:26 ` [Bug java/23620] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-30 10:56 UTC (permalink / raw)
  To: java-prs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |18131
              nThis|                            |


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
  2005-08-29  9:44 [Bug java/23620] New: Segfault compiling inner interfaces wmahan at gmail dot com
  2005-08-30 10:56 ` [Bug java/23620] " pinskia at gcc dot gnu dot org
@ 2005-08-31 15:26 ` pinskia at gcc dot gnu dot org
  2005-08-31 16:24 ` wmahan at gmail dot com
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-31 15:26 UTC (permalink / raw)
  To: java-prs


------- 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|0000-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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
  2005-08-29  9:44 [Bug java/23620] New: Segfault compiling inner interfaces wmahan at gmail dot com
  2005-08-30 10:56 ` [Bug java/23620] " pinskia at gcc dot gnu dot org
  2005-08-31 15:26 ` [Bug java/23620] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
@ 2005-08-31 16:24 ` wmahan at gmail dot com
  2005-09-01 19:18 ` wmahan at gmail dot com
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: wmahan at gmail dot com @ 2005-08-31 16:24 UTC (permalink / raw)
  To: java-prs


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
  2005-08-29  9:44 [Bug java/23620] New: Segfault compiling inner interfaces wmahan at gmail dot com
                   ` (2 preceding siblings ...)
  2005-08-31 16:24 ` wmahan at gmail dot com
@ 2005-09-01 19:18 ` wmahan at gmail dot com
  2005-09-01 21:37 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: wmahan at gmail dot com @ 2005-09-01 19:18 UTC (permalink / raw)
  To: java-prs


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
  2005-08-29  9:44 [Bug java/23620] New: Segfault compiling inner interfaces wmahan at gmail dot com
                   ` (3 preceding siblings ...)
  2005-09-01 19:18 ` wmahan at gmail dot com
@ 2005-09-01 21:37 ` pinskia at gcc dot gnu dot org
  2005-09-02  7:13 ` nathan at gcc dot gnu dot org
  2005-09-21 14:29 ` tromey at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-09-01 21:37 UTC (permalink / raw)
  To: java-prs


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
  2005-08-29  9:44 [Bug java/23620] New: Segfault compiling inner interfaces wmahan at gmail dot com
                   ` (4 preceding siblings ...)
  2005-09-01 21:37 ` pinskia at gcc dot gnu dot org
@ 2005-09-02  7:13 ` nathan at gcc dot gnu dot org
  2005-09-21 14:29 ` tromey at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: nathan at gcc dot gnu dot org @ 2005-09-02  7:13 UTC (permalink / raw)
  To: java-prs



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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug java/23620] [4.0/4.1 Regression] Segfault compiling inner interfaces
  2005-08-29  9:44 [Bug java/23620] New: Segfault compiling inner interfaces wmahan at gmail dot com
                   ` (5 preceding siblings ...)
  2005-09-02  7:13 ` nathan at gcc dot gnu dot org
@ 2005-09-21 14:29 ` tromey at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-09-21 14:29 UTC (permalink / raw)
  To: java-prs


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2005-09-21 14:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-29  9:44 [Bug java/23620] New: Segfault compiling inner interfaces wmahan at gmail dot com
2005-08-30 10:56 ` [Bug java/23620] " pinskia at gcc dot gnu dot org
2005-08-31 15:26 ` [Bug java/23620] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
2005-08-31 16:24 ` wmahan at gmail dot com
2005-09-01 19:18 ` wmahan at gmail dot com
2005-09-01 21:37 ` pinskia at gcc dot gnu dot org
2005-09-02  7:13 ` nathan at gcc dot gnu dot org
2005-09-21 14:29 ` tromey at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).