gcj/83: Failure to compile try/finally?
gback@cs.utah.edu
gback@cs.utah.edu
Thu Nov 4 08:30:00 GMT 1999
>Number: 83
>Category: gcj
>Synopsis: Failure to compile try/finally?
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: apbianco
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Nov 04 08:30:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator: Godmar Back
>Release: CVS October
>Organization:
>Environment:
Linux
>Description:
An old problem I've mentioned in April still hasn't been
fixed.
The following program produces incorrect results when
compiled from the java source.
It works when compiled from a .class file generated by
say jikes.
Sun's JDK executes the .class file generated by gcj -C.
gcj cannot compile the .class file it generates with -C.
>How-To-Repeat:
/*
* test that caught null pointers exceptions in finalizers work correctly
* and that local variables are accessible in null pointer exception handlers.
*/
import java.io.*;
public class NullPointerTest {
static String s;
public static void main(String[] args) {
System.out.println(tryfinally() + s);
}
public static String tryfinally() {
String yuck = null;
String local_s = null;
try {
return "This is ";
} finally {
try {
local_s = "Perfect";
/* trigger null pointer exception */
String x = yuck.toLowerCase();
} catch (Exception _) {
/*
* when the null pointer exception is caught, we must still
* be able to access local_s.
* Our return address for the finally clause must also still
* be intact.
*/
s = local_s;
}
}
}
}
/* Expected Output:
This is Perfect
*/
>Fix:
N/A
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Java-prs
mailing list