Bug 19471 - ICE when anonymous class extends inner class of another class
Summary: ICE when anonymous class extends inner class of another class
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: java (show other bugs)
Version: 4.0.0
: P2 normal
Target Milestone: 4.3.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on: 28067
Blocks: 18131
  Show dependency treegraph
 
Reported: 2005-01-16 18:41 UTC by Kalle Olavi Niemitalo
Modified: 2007-01-09 20:46 UTC (History)
2 users (show)

See Also:
Host: i386-pc-linux-gnu
Target: i386-pc-linux-gnu
Build: i386-pc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed: 2005-08-10 23:56:04


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kalle Olavi Niemitalo 2005-01-16 18:41:58 UTC
A GCC checked out from CVS on 2005-01-03 gets a segmentation fault
when compiling the following code.  Jikes compiles it all right,
generating an <init> method that takes references to both First and
Second as parameters.  Kaffe attempts the same but fails verification.

class First {
    class Inner {}
};

class Second {
    void fn(First first) {
        first.new Inner() {
                void crash() {}
            };
    }
}

$ gcj -v -C AnonExt.java
Using built-in specs.
Configured with: /home/kalle/src/FOREIGN-CVS/gcc/configure --prefix=/home/kalle
--exec-prefix=/home/kalle/i386-pc-linux-gnu --host=i386-pc-linux-gnu
--build=i386-pc-linux-gnu
Thread model: posix
gcc version 4.0.0 20050103 (experimental)

/home/kalle/stow/gcc/i386-pc-linux-gnu/bin/../libexec/gcc/i386-pc-linux-gnu/4.0.0/jc1 AnonExt.java -quiet -dumpbase AnonExt.java -auxbase-strip NONE -g1 -version
-fsyntax-only -femit-class-files -o /dev/null
GNU Java version 4.0.0 20050103 (experimental) (i386-pc-linux-gnu)
	compiled by GNU C version 4.0.0 20041023 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Class path starts here:
    ./
   
/home/kalle/stow/gcc/i386-pc-linux-gnu/bin/../lib/gcc/../../../share/java/libgcj-4.0.0.jar/ (system) (zip)
AnonExt.java:10: 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.

If I remove the crash() function, then GCC succeeds in compiling the
source.  I haven't checked the resulting bytecode, though.
Comment 1 Andrew Pinski 2005-01-16 18:46:21 UTC
Confirmed, here is the backtrace:
#0  0x00010008 in maybe_absorb_scoping_blocks () at /Users/pinskia/src/local/gcc/gcc/java/parse.y:
12555
#1  0x00041494 in java_parse () at /Users/pinskia/src/local/gcc/gcc/java/parse.y:1395
#2  0x00041494 in java_parse () at /Users/pinskia/src/local/gcc/gcc/java/parse.y:1395
Comment 2 Tom Tromey 2007-01-09 20:46:54 UTC
All gcj front end bugs have been fixed by the gcj-eclipse branch merge.
I'm mass-closing the affected PRs.
If you believe one of these was closed in error, please reopen it
with a note explaining why.
Thanks.