This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug java/20768] New: Bytecode -> native code doesn't handle exception properly
- From: "overholt at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 5 Apr 2005 18:11:56 -0000
- Subject: [Bug java/20768] New: Bytecode -> native code doesn't handle exception properly
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
With the test case I will attach, I get different behaviour if I compile it
first to bytecode *with ecj* and then natively compile it versus interpreting
the bytecode (I have also tried going directly from source to native and that's
the same behaviour as interpreted).
The error does not happen with bytecode generated by gcj -C or Sun's javac.
To duplicate (note: javac == ecj in case 1 and Sun's javac in case 2)
1.
javac TestExceptionBug.java
gcj -fPIC -fjni -findirect-dispatch --main=TestExceptionBug -o TestExceptionBug
*.class
gcj -fPIC -fjni -findirect-dispatch --main=TestExceptionBug -o
nativeTestExceptionBug TestExceptionBug.java
echo "==== interpreted ===="; gij TestExceptionBug
echo "==== native (from source) ===="; ./nativeTestExceptionBug
echo "==== native (from bytecode) ===="; ./TestExceptionBug
Output:
==== interpreted ====
Finally! It's happened to me -- Ce Ce Penniston
Hi
==== native (from source) ====
Finally! It's happened to me -- Ce Ce Penniston
Hi
==== native (from bytecode) ====
Finally! It's happened to me -- Ce Ce Penniston
Exception in thread "main" TestExceptionBug$IndexedStoreException
at TestExceptionBug.getIndex(java.lang.String) (Unknown Source)
at TestExceptionBug.getIndex() (Unknown Source)
at TestExceptionBug.main(java.lang.String[]) (Unknown Source)
at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0)
at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)
2.
javac TestExceptionBug.java
gcj -fPIC -fjni -findirect-dispatch --main=TestExceptionBug -o TestExceptionBug
*.class
gcj -fPIC -fjni -findirect-dispatch --main=TestExceptionBug -o
nativeTestExceptionBug TestExceptionBug.java
echo "==== interpreted ===="; gij TestExceptionBug
echo "==== native (from source) ===="; ./nativeTestExceptionBug
echo "==== native (from bytecode) ===="; ./TestExceptionBug
Output:
==== interpreted ====
Finally! It's happened to me -- Ce Ce Penniston
Hi
==== native (from source) ====
Finally! It's happened to me -- Ce Ce Penniston
Hi
==== native (from bytecode) ====
Finally! It's happened to me -- Ce Ce Penniston
Hi
$ gcj --version
gcj (GCC) 4.0.0 20050402 (Red Hat 4.0.0-0.39)
$ javac -version
Eclipse Java Compiler 0.537, pre-3.1.0 milestone-5, Copyright IBM Corp 2000,
2005. All rights reserved.
--
Summary: Bytecode -> native code doesn't handle exception
properly
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: overholt at redhat dot com
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20768