summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c')
-rwxr-xr-xgcc/testsuite/gcc.c-torture/execute/ieee/rbug.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c b/gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
new file mode 100755
index 0000000..a91a99e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
@@ -0,0 +1,41 @@
+double d (unsigned long long k)
+{
+ double x;
+
+ x = (double) k;
+ return x;
+}
+
+float s (unsigned long long k)
+{
+ float x;
+
+ x = (float) k;
+ return x;
+}
+
+main ()
+{
+ unsigned long long int k;
+ double x;
+
+ /* CYGNUS LOCAL -- meissner/32bit doubles */
+ if (sizeof (double) >= 8)
+ {
+ k = 0x8693ba6d7d220401ULL;
+ x = d (k);
+ k = (unsigned long long) x;
+ if (k != 0x8693ba6d7d220800ULL)
+ abort ();
+ }
+ /* END CYGNUS LOCAL -- meissner/32bit doubles */
+
+ k = 0x8234508000000001ULL;
+ x = s (k);
+ k = (unsigned long long) x;
+ if (k != 0x8234510000000000ULL)
+ abort ();
+
+ exit (0);
+}
+