Package: gcj-3.3 Version: 3.3.2-4 Severity: normal Greetings,
gcj-3.3 ICEs during at attempted build of babel 0.8.8. The compile command is quite ugly: javac -g -d . -classpath ../lib/java-getopt-1.0.7.jar:../lib/xerces-2.4.0.jar:../lib/jcert-1.0.1.jar:../lib/jnet-1.0.1.jar:../lib/external/jsse-1.0.1.jar:../lib/xml-apis.jar ./gov/llnl/babel/backend/c/ArrayMethods.java (and 161 other .java files) It is followed by a boatload of warnings, and then: ./gov/llnl/babel/backend/fortran/AbbrevHeader.java: In class `gov.llnl.babel.backend.fortran.AbbrevHeader': ./gov/llnl/babel/backend/fortran/AbbrevHeader.java: In method `gov.llnl.babel.backend.fortran.AbbrevHeader.generateExtendable(gov.llnl.babel.symbols.Extendable,gov.llnl.babel.backend.mangler.NameMangler,gov.llnl.babel.backend.mangler.NameMangler)': ./gov/llnl/babel/backend/fortran/AbbrevHeader.java:239: internal compiler error: in emit_store, at java/jcf-write.c:1048 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. Is there an equivalent to "gcc -E" for Java, to preprocess the source? If not, you can get the (unbuildable) Debian package source at: http://lyre.mit.edu/~powell/babel/babel_0.8.8.orig.tar.gz http://lyre.mit.edu/~powell/babel/babel_0.8.8-1.diff.gz http://lyre.mit.edu/~powell/babel/babel_0.8.8-1.dsc then just dpkg-buildpackage -r fakeroot, and you'll see the ICE. Or give me instructions for making "preprocessed source" and I'll do so. Interestingly, babel 0.8.6-3 compiles just fine. (Kaffe fails to run it; if compiled with gcj-0.3.2, then kaffe is perfectly happy with it. But that's bug 197090 against kaffe.) The difference between the AbbrevHeader.java files in those two versions is: --- babel-0.8.6/compiler/gov/llnl/babel/backend/fortran/AbbrevHeader.java 2003-07-23 12:30:08.000000000 -0400 +++ babel-0.8.8/compiler/gov/llnl/babel/backend/fortran/AbbrevHeader.java 2003-10-28 18:25:43.000000000 -0500 @@ -2,9 +2,9 @@ // File: AbbrevHeader.java // Package: gov.llnl.babel.backend.fortran // Copyright: (c) 2002 The Regents of the University of California -// Release: $Name: release-0-8-6 $ -// Revision: @(#) $Revision: 1.12 $ -// Date: $Date: 2003/04/02 22:11:25 $ +// Release: $Name: release-0-8-8 $ +// Revision: @(#) $Revision: 1.13 $ +// Date: $Date: 2003/09/03 15:08:42 $ // Description: Write #include file to mangle names when necessary // // @@ -78,6 +78,9 @@ "get2", "get3", "get4", + "get5", + "get6", + "get7", "isColumnOrder", "isRowOrder", "lower", @@ -86,6 +89,9 @@ "set2", "set3", "set4", + "set5", + "set6", + "set7", "slice", "smartCopy", "stride", @@ -230,13 +236,16 @@ } if ("f90".equals(BabelConfiguration.getInstance().getTargetLanguage())) { + final int maxArray = BabelConfiguration.getInstance().getMaximumArray(); if (!ext.isInterface()) { generateType(symName, non, fort, "_impl"); generateType(symName, non, fort, "_private"); generateType(symName, non, fort, "_wrap"); } generateType(symName, non, fort, ""); - generateType(symName, non, fort, "_a"); + for(int d = 1; d <= maxArray ; ++d) { + generateType(symName, non, fort, "_" + Integer.toString(d) + "d"); + } generateType(symName, non, fort, "_array"); generateType(symName, non, fort, "_t"); generateType(symName, non, fort, "_type"); Of course the version difference is irrelevant; the next two hunks add to an array of strings. But the last hunk is in the generateExtendable method, with its first change on line 239 (mentioned in the ICE). Perhaps that change could provide a clue as to why the old version compiles and the new one causes an ICE... Thanks, -- -Adam P. GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6 Welcome to the best software in the world today cafe! http://lyre.mit.edu/~powell/The_Best_Stuff_In_The_World_Today_Cafe.ogg