java/4230: gcj -C segfaults on static string continuation '+' in gcj 3.1 expermental.
Tony Knaus
awk@panic.spinnakernet.com
Tue Sep 4 15:36:00 GMT 2001
>Number: 4230
>Category: java
>Synopsis: gcj -C segfaults on static string continuation '+' in gcj 3.1 expermental.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Tue Sep 04 15:36:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: awk@spinnakernet.com
>Release: 3.1 20010902 (experimental)
>Organization:
Spinnaker Networks Inc.
>Environment:
System: Linux panic 2.2.12-20 #1 Mon Sep 27 10:40:35 EDT 1999 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --prefix=/usr/local/gcc-3.0 --enable-shared --enable-threads=posix --enable-version-specific-runtime-libs --enable-java-awt=xlib --enable-languages=c,c++,java
>Description:
gcj 3.1 generates a segmentation fault while building the xerces parser and
generating byte code. The compiler does not seg fault when compiling
to object code or just generating dependencies.
gcj -M -C --encoding=UTF-8 -CLASSPATH ":build/xerces/src:src/xerces/src:src/cimom:src/regexp/src/java:src/servlet/src:build/tomcat/src:src/tomcat/src:src/remotetea/src:src/j-dom/jdom/src/java:src/enhydra/SchemaMapper/src/java:src/tests:src/tools/formgen:src/tools/kbgen:src/tools/typegen:src/tools/utils:src/tools/logmessage:src/ui:src/providers:src/rpc:build/ui:build/tests" build/xerces/src/org/apache/xerces/utils/regex/Token.java > build/xerces/src/org/apache/xerces/utils/regex/.Token.u
build/xerces/src/org/apache/xerces/utils/regex/Token.java:1: Internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
cons: *** [build/xerces/src/org/apache/xerces/utils/regex/.Token.u] Error 1
cons: errors constructing build/xerces/src/org/apache/xerces/utils/regex/.Token.u
>
I have tracked the problem down to the initialization of
static strings with line continuation '+' characters. Folling is a
simple example that causes the seg-fault.
public class StringCrash {
static final String viramaString =
"f"
+"o"
+"o"
+"b"
+"a"
+"r";
public static void main(String[] args) {
System.out.println("viramaString= " + viramaString);
}
};
>How-To-Repeat:
> /usr/local/gcc-3.0/bin/gcj -v -C StringCrash.java
Reading specs from /usr/local/gcc-3.0/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs
Configured with: ../gcc/configure --prefix=/usr/local/gcc-3.0 --enable-shared --enable-threads=posix --enable-version-specific-runtime-libs --enable-java-awt=xlib --enable-languages=c,c++,java
Thread model: posix
gcc version 3.1 20010902 (experimental)
/usr/local/gcc-3.0/lib/gcc-lib/i686-pc-linux-gnu/3.1/jc1 StringCrash.java -quiet -dumpbase StringCrash.java -g1 -version -fsyntax-only -femit-class-files -o /dev/null
GNU Java version 3.1 20010902 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version 3.1 20010902 (experimental).
Class path starts here:
./
/usr/local/gcc-3.0/share/libgcj.jar/ (system) (zip)
StringCrash.java:1: Internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
> /usr/local/gcc-3.0/bin/gcj -v -E -C StringCrash.java
Reading specs from /usr/local/gcc-3.0/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs
Configured with: ../gcc/configure --prefix=/usr/local/gcc-3.0 --enable-shared --enable-threads=posix --enable-version-specific-runtime-libs --enable-java-awt=xlib --enable-languages=c,c++,java
Thread model: posix
gcc version 3.1 20010902 (experimental)
>
Compile the above example with the '-C' option.
>Fix:
workarounds:
- don't compile to byte-code
- or don't use string continuation when compiling to byte code
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list