aboutsummaryrefslogtreecommitdiff
path: root/libjava/testsuite
diff options
context:
space:
mode:
authorAndrew Haley <aph@cygnus.com>1999-05-20 08:26:55 +0000
committerAndrew Haley <aph@gcc.gnu.org>1999-05-20 08:26:55 +0000
commit554b61bb304e178d08f69b202b6d16eca14785af (patch)
treec773f8d236cca5c8caaa0578e6211289e6fc850a /libjava/testsuite
parentbf3118d04b6463cf24e439729ef9a2600b452f60 (diff)
downloadgcc-554b61bb304e178d08f69b202b6d16eca14785af.zip
gcc-554b61bb304e178d08f69b202b6d16eca14785af.tar.gz
gcc-554b61bb304e178d08f69b202b6d16eca14785af.tar.bz2
prims.cc (catch_fpe): Call to HANDLE_DIVIDE_OVERFLOW added.
1999-05-20 Andrew Haley <aph@cygnus.com> * libjava/prims.cc (catch_fpe): Call to HANDLE_DIVIDE_OVERFLOW added. * include/i386-signal.h (HANDLE_DIVIDE_OVERFLOW): New macro. (INIT_FPE): Exception string made more informative. * include/sparc-signal.h (INIT_FPE): Exception string made more informative. * testsuite/libjava.lang/Divide_1.java: New file. * testsuite/libjava.lang/Divide_1.out: New file. From-SVN: r27056
Diffstat (limited to 'libjava/testsuite')
-rw-r--r--libjava/testsuite/libjava.lang/Divide_1.java105
-rw-r--r--libjava/testsuite/libjava.lang/Divide_1.out11
2 files changed, 116 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.lang/Divide_1.java b/libjava/testsuite/libjava.lang/Divide_1.java
new file mode 100644
index 0000000..d4e0193
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/Divide_1.java
@@ -0,0 +1,105 @@
+public class Divide_1
+{
+ static int b = Integer.parseInt ("-1");
+ int b1 = Integer.parseInt ("-1");
+ static int zero = Integer.parseInt ("0");
+
+ void probe ()
+ {
+ try {
+ int a = Integer.parseInt ("-80000000", 16);
+ int c = a/b;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ int a = Integer.parseInt ("-80000000", 16);
+ int c = a/-1;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ int a = Integer.parseInt ("-80000000", 16);
+ int c = a%b;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ int a = Integer.parseInt ("-80000000", 16);
+ int c = a%b1;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ int a = Integer.parseInt ("-80000000", 16);
+ int c = a%-1;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ int a = Integer.parseInt ("8000", 16);
+ int b = Integer.parseInt ("0", 16);
+ int c = a/b;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ int a = Integer.parseInt ("8000", 16);
+ int b = Integer.parseInt ("0", 16);
+ int c = a%b;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ long a = Long.parseLong ("-8000000000000000", 16);
+ long c = a/b;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ long a = Long.parseLong ("-8000000000000000", 16);
+ long c = a%b;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ long a = Long.parseLong ("8000", 16);
+ long b = Long.parseLong ("0", 16);
+ long c = a/b;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+
+ try {
+ long a = Long.parseLong ("8000", 16);
+ long b = Long.parseLong ("0", 16);
+ long c = a%b;
+ System.out.println (c);
+ } catch (Exception _) {
+ System.out.println (_);
+ }
+ }
+
+ public static void main (String[] args) {
+ new Divide_1 ().probe ();
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/Divide_1.out b/libjava/testsuite/libjava.lang/Divide_1.out
new file mode 100644
index 0000000..6e1f87e
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/Divide_1.out
@@ -0,0 +1,11 @@
+-2147483648
+-2147483648
+0
+0
+0
+java.lang.ArithmeticException: / by zero
+java.lang.ArithmeticException: / by zero
+-9223372036854775808
+0
+java.lang.ArithmeticException: / by zero
+java.lang.ArithmeticException: / by zero