Divide by zero does not throw exception for longs

Tom Tromey tromey@redhat.com
Tue Jun 12 21:58:00 GMT 2001


>>>>> "Aneesh" == Aneesh Aggarwal <aneesha@granite.hpl.hp.com> writes:

Aneesh> It works correctly for
Aneesh> libjava/testsuite/libjava.lang/Divide_1.java. In
Aneesh> Divide_1.java, if instead of
Aneesh> long a = 8000;
Aneesh> long b = 0;
Aneesh> long c = a/b;
I tried the appended program and it worked for me.
I'm using gcc3 that I updated and rebuilt today.
In particular I rebuilt libgcj from scratch.
 creche. gcj -O3 --main=foo -o F foo.java -Wl,-rpath,/x1/gcc3/install/lib
 creche. ./F
 Exception in thread "main" java.lang.ArithmeticException: / by zero
 at 0x401497ca: _Jv_ThrowSignal (/x1/gcc3/install/lib/libgcj.so.2)
 at 0x4014994d: _Jv_ThrowSignal (/x1/gcc3/install/lib/libgcj.so.2)
 at 0x08048bad: ?? (/usr/src/bs/BUILD/glibc-2.1.3/csu/init.c:0)
 at 0x401677a0: gnu.gcj.runtime.FirstThread.run() (/x1/gcc3/install/lib/libgcj.so.2)
 at 0x401754e7: java.lang.Thread.run_(java.lang.Object) (/x1/gcc3/install/lib/libgcj.so.2)
 at 0x402855bf: _Jv_ThreadSetPriority(_Jv_Thread_t, int) (/x1/gcc3/install/lib/libgcj.so.2)
 at 0x404b472c: GC_start_routine (/x1/gcc3/install/lib/libgcjgc.so.1)
 at 0x404cdb85: pthread_detach (/lib/libpthread.so.0)
 at 0x4059f16a: __clone (/lib/libc.so.6)
Does this fail for anybody else?
I understood that Andrew made it fail. But why doesn't it fail for
me?
I'm doing this on my x86 Red Hat Linux 6.2 box.
Tom
public class foo 
{
 public static void main (String[] args)
 {
 long a = 8000;
 long b = 0;
 long c = a/b;
 System.out.println (c); 
 }
}


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /