Bug 15656 - [3.3/3.4/4.0 Regression] ICE segfault in lex.c
Summary: [3.3/3.4/4.0 Regression] ICE segfault in lex.c
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: java (show other bugs)
Version: 4.0.0
: P2 minor
Target Milestone: 4.0.0
Assignee: Tom Tromey
URL:
Keywords: error-recovery, ice-on-invalid-code, patch
Depends on:
Blocks: 17574
  Show dependency treegraph
 
Reported: 2004-05-25 22:11 UTC by Serge Belyshev
Modified: 2004-09-24 15:46 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work: 3.0.4
Known to fail: 3.3.3 3.2.3 3.4.0 4.0.0
Last reconfirmed: 2004-09-09 00:38:15


Attachments
testcase (90 bytes) (84 bytes, text/plain)
2004-05-25 22:12 UTC, Serge Belyshev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Serge Belyshev 2004-05-25 22:11:43 UTC
Starting program: /usr/local/src/gcc/head/build/gcc/jc1 bug.java
 class bugbug.java:4: error: '(' expected.
                Object ctor = new Object;
                                           ^

Program received signal SIGSEGV, Segmentation fault.
0x0804fcc5 in error_if_numeric_overflow (value=0x15d) at lex.c:1727
1727      if (TREE_CODE (value) == INTEGER_CST
(gdb) where
#0  0x0804fcc5 in error_if_numeric_overflow (value=0x15d) at lex.c:1727
#1  0x08059f27 in java_parse () at parse.y:2328
#2  0x081433c2 in parse_source_file_1 (file=0x404cc86c, finput=0x8830ba8)
    at ../../gcc/gcc/java/jcf-parse.c:826
#3  0x0814442f in java_parse_file (set_yydebug=0) at
../../gcc/gcc/java/jcf-parse.c:1078
#4  0x085d38a6 in compile_file () at ../../gcc/gcc/toplev.c:1653
#5  0x085d584a in do_compile () at ../../gcc/gcc/toplev.c:2699
#6  0x085d58af in toplev_main (argc=2, argv=0xbffff834) at
../../gcc/gcc/toplev.c:2731
#7  0x40039b45 in __libc_start_main (main=0xbffffac3, argc=-1073743154,
ubp_av=0xbffffaeb, 
    init=0x86e38f0 <__libc_csu_init>, fini=0x86e3950 <__libc_csu_fini>, 
    rtld_fini=0x4000baa0 <_dl_fini>, stack_end=0xbffffb51)
    at ../sysdeps/generic/libc-start.c:209
#8  0x08049c71 in _start () at ../sysdeps/i386/elf/start.S:102
(gdb)
Comment 1 Serge Belyshev 2004-05-25 22:12:56 UTC
Created attachment 6382 [details]
testcase (90 bytes)
Comment 2 Andrew Pinski 2004-05-25 22:19:44 UTC
Confirmed.
Comment 3 Mark Mitchell 2004-06-12 21:56:15 UTC
Postponed until GCC 3.4.2.
Comment 4 Mark Mitchell 2004-08-29 18:06:19 UTC
Postponed all ice-on-invalid bugs to GCC 3.4.3.
Comment 5 Tom Tromey 2004-09-09 00:28:45 UTC
FWIW I can't reproduce this with cvs trunk.
Comment 6 Andrew Pinski 2004-09-09 00:38:14 UTC
I can reproduce on the mainline still (at least updated Wed Sep  8 18:32:57 UTC 2004):
Reading specs from /Users/apinski/general_cleanup/lib/gcc/powerpc-apple-darwin8.0.0b2/3.5.0/
specs
Reading specs from /Users/apinski/general_cleanup/lib/gcc/powerpc-apple-
darwin8.0.0b2/3.5.0/../../../libgcj.spec
rename spec lib to liborig
Configured with: /Users/apinski/src/devel/general_cleanup/gcc/configure --prefix=/Users/apinski/
general_cleanup
Thread model: posix
gcc version 3.5.0 20040908 (experimental)
 /Users/apinski/general_cleanup/libexec/gcc/powerpc-apple-darwin8.0.0b2/3.5.0/jc1 bug.java -
fhash-synchronization -fuse-divide-subroutine -fuse-boehm-gc -fnon-call-exceptions -fkeep-inline-
functions -fPIC -quiet -dumpbase bug.java -auxbase bug -g1 -version -o /var/tmp//cc5ymwdk.s
GNU Java version 3.5.0 20040908 (experimental) (powerpc-apple-darwin8.0.0b2)
        compiled by GNU C version 3.5.0 20040908 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Class path starts here:
    ./
    /Users/apinski/general_cleanup/share/java/libgcj-3.5.0.jar/ (system) (zip)
bug.java:4: error: '(' expected.
                   Object ctor = new Object;
                                           ^
bug.java:4: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Comment 7 Andrew Pinski 2004-09-09 17:38:08 UTC
Here is the backtrace:
#0  java_parse () at lex.c:1740
#1  0x080c7b19 in java_parse_file (set_yydebug=0) at /home/gates/pinskia/src/gnu/gcc/src/gcc/
java/jcf-parse.c:1115
#2  0x083de193 in toplev_main (argc=4277860656, argv=0xfefb07a4) at /home/gates/pinskia/src/
gnu/gcc/src/gcc/toplev.c:992
#3  0x00125ad4 in __libc_start_main () from /lib/tls/libc.so.6
#4  0x08049d51 in _start ()

Comment 8 Tom Tromey 2004-09-22 22:14:49 UTC
I looked in the debugger, and I'm definitely seeing
a bad call error_if_numeric_overflow, with an argument of
0x15d (like the reporter).  For whatever reason this doesn't
cause a crash here, but it is definitely wrong.
Comment 9 Tom Tromey 2004-09-22 22:39:40 UTC
I'm testing a fix.
Comment 10 Andrew Pinski 2004-09-23 00:41:15 UTC
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02326.html>.
Comment 11 GCC Commits 2004-09-24 15:42:59 UTC
Subject: Bug 15656

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	tromey@gcc.gnu.org	2004-09-24 15:42:57

Modified files:
	libjava        : ChangeLog 
Added files:
	libjava/testsuite/libjava.compile: pr15656.java pr15656.xfail 

Log message:
	PR java/15656:
	* testsuite/libjava.compile/pr15656.xfail: New file.
	* testsuite/libjava.compile/pr15656.java: new file.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&r1=1.3088&r2=1.3089
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.compile/pr15656.java.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/testsuite/libjava.compile/pr15656.xfail.diff?cvsroot=gcc&r1=NONE&r2=1.1

Comment 12 GCC Commits 2004-09-24 15:44:50 UTC
Subject: Bug 15656

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	tromey@gcc.gnu.org	2004-09-24 15:44:37

Modified files:
	gcc/java       : ChangeLog parse.y 

Log message:
	PR java/15656:
	* parse.y (class_instance_creation_expression): Set `$$' to NULL
	in error parts of rule.
	(unary_expression): Don't call error_if_numeric_overflow when $1
	is NULL.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&r1=1.1462&r2=1.1463
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/parse.y.diff?cvsroot=gcc&r1=1.509&r2=1.510

Comment 13 Tom Tromey 2004-09-24 15:46:24 UTC
Fix checked in.