public inbox for java-prs@sourceware.org help / color / mirror / Atom feed
* [Bug java/19810] New: Finally handling inconsistent when compiling to class/executable
@ 2005-02-02 20:59 jdh41@cantab.net
2005-02-07 19:21 ` [Bug java/19810] " tromey@gcc.gnu.org
2005-02-19 1:53 ` tromey at gcc dot gnu dot org
0 siblings, 2 replies; 4+ messages in thread
From: jdh41@cantab.net @ 2005-02-02 20:59 UTC (permalink / raw)
To: java-prs
>From this code fragment:
class Confuse {
public static void main (String[] bob)
{
boolean jim;
jim=wtf(true);
System.out.print("Calling wtf(true):");
System.out.println(jim);
jim=wtf(false);
System.out.print("Calling wtf(false):");
System.out.println(jim);
}
static boolean wtf(boolean jam) {
while (jam)
{
try {
return true;
}
finally {
break;
}
}
return false;
}
}
Session:
jdh41@chloe:~/src$ gcj -v
Using built-in specs.
Reading specs from
/home/jdh41/gcc/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../libgcj.spec
rename spec lib to liborig
Configured with: ../configure --enable-languages=java --disable-checking
--disable-static --enable-java-awt=gtk --with-system-zlib --prefix=/home/jdh41/gcc
Thread model: posix
gcc version 4.0.0 20050129 (experimental)
jdh41@chloe:~/src$ gcj -C Confuse.java
jdh41@chloe:~/src$ java -v Confuse
Calling wtf(true):true
Calling wtf(false):false
jdh41@chloe:~/src$ ~/j2sdk1.4.2_06/bin/java Confuse
Calling wtf(true):true
Calling wtf(false):false
jdh41@chloe:~/src$ gcj -o confuse_me Confuse.java --main=Confuse
jdh41@chloe:~/src$ ./confuse_me
Calling wtf(true):false
Calling wtf(false):false
jdh41@chloe:~/src$ ~/j2sdk1.4.2_06/bin/javac Confuse.java
jdh41@chloe:~/src$ ~/j2sdk1.4.2_06/bin/java Confuse
Calling wtf(true):false
Calling wtf(false):false
As you can see the compile to class files seems to be wrong, and further the
compiler and not the VM.
--
Summary: Finally handling inconsistent when compiling to
class/executable
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jdh41 at cantab dot net
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
GCC build triplet: i486-linux
GCC host triplet: i486-linux
GCC target triplet: i486-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19810
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug java/19810] Finally handling inconsistent when compiling to class/executable 2005-02-02 20:59 [Bug java/19810] New: Finally handling inconsistent when compiling to class/executable jdh41@cantab.net @ 2005-02-07 19:21 ` tromey@gcc.gnu.org 2005-02-19 1:53 ` tromey at gcc dot gnu dot org 1 sibling, 0 replies; 4+ messages in thread From: tromey@gcc.gnu.org @ 2005-02-07 19:21 UTC (permalink / raw) To: java-prs ------- Additional Comments From tromey at gcc dot gnu dot org 2005-02-07 19:21 ------- This also affects 3.3. The code for the wtf() method forgets to call the finally handler: 0: iload_0 1: ifeq 7 4: iconst_1 5: ireturn 6: pop 7: iconst_0 8: ireturn -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed| |1 Last reconfirmed|0000-00-00 00:00:00 |2005-02-07 19:21:05 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19810 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug java/19810] Finally handling inconsistent when compiling to class/executable 2005-02-02 20:59 [Bug java/19810] New: Finally handling inconsistent when compiling to class/executable jdh41@cantab.net 2005-02-07 19:21 ` [Bug java/19810] " tromey@gcc.gnu.org @ 2005-02-19 1:53 ` tromey at gcc dot gnu dot org 1 sibling, 0 replies; 4+ messages in thread From: tromey at gcc dot gnu dot org @ 2005-02-19 1:53 UTC (permalink / raw) To: java-prs ------- Additional Comments From tromey at gcc dot gnu dot org 2005-02-19 00:19 ------- I investigated this some more. The code generator for "return" looks at the finally stack to decide whether to call any finally handlers. But, the code generator for "try" has a special case when the finally clause cannot complete normally. This confuses the "return" handler. One fix would be to turn off this optimization. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19810 ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <bug-19810-10063@http.gcc.gnu.org/bugzilla/>]
* [Bug java/19810] Finally handling inconsistent when compiling to class/executable [not found] <bug-19810-10063@http.gcc.gnu.org/bugzilla/> @ 2007-01-09 20:51 ` tromey at gcc dot gnu dot org 0 siblings, 0 replies; 4+ messages in thread From: tromey at gcc dot gnu dot org @ 2007-01-09 20:51 UTC (permalink / raw) To: java-prs ------- Comment #3 from tromey at gcc dot gnu dot org 2007-01-09 20:47 ------- All gcj front end bugs have been fixed by the gcj-eclipse branch merge. I'm mass-closing the affected PRs. If you believe one of these was closed in error, please reopen it with a note explaining why. Thanks. -- tromey at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19810 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-01-09 20:50 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-02-02 20:59 [Bug java/19810] New: Finally handling inconsistent when compiling to class/executable jdh41@cantab.net 2005-02-07 19:21 ` [Bug java/19810] " tromey@gcc.gnu.org 2005-02-19 1:53 ` tromey at gcc dot gnu dot org [not found] <bug-19810-10063@http.gcc.gnu.org/bugzilla/> 2007-01-09 20:51 ` tromey at gcc dot gnu dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).