Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1110)

Unified Diff: gcc/gcc/testsuite/gcc.dg/dfp/constants-zero.c

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gcc/gcc/testsuite/gcc.dg/dfp/constants-hex.c ('k') | gcc/gcc/testsuite/gcc.dg/dfp/convert.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gcc/gcc/testsuite/gcc.dg/dfp/constants-zero.c
diff --git a/gcc/gcc/testsuite/gcc.dg/dfp/constants-zero.c b/gcc/gcc/testsuite/gcc.dg/dfp/constants-zero.c
deleted file mode 100644
index e0db28cc38f9ec27b05c5ff4a5e8e8444bfbc3b8..0000000000000000000000000000000000000000
--- a/gcc/gcc/testsuite/gcc.dg/dfp/constants-zero.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* { dg-options "-std=gnu99 -O0" } */
-
-/* Decimal float values can have significant trailing zeroes. This is
- true for zero values as well. Check that various representations of
- zero are handled correctly when specified as literal constants. */
-
-extern void abort (void);
-
-int big_endian;
-
-typedef union U32 {
- unsigned int i;
- _Decimal32 d;
- unsigned char b[4];
-} u32_t;
-
-typedef union U64 {
- unsigned long long i;
- _Decimal64 d;
-} u64_t;
-
-typedef union U128 {
- unsigned long long i[2];
- _Decimal128 d;
-} u128_t;
-
-int
-compare32 (_Decimal32 d, unsigned int i)
-{
- u32_t u;
-
- u.d = d;
- return (u.i == i);
-}
-
-int
-compare64 (_Decimal64 d, unsigned long long i)
-{
- u64_t u;
-
- u.d = d;
- return (u.i == i);
-}
-
-int
-compare128 (_Decimal64 d, unsigned long long i, unsigned long long j)
-{
- u128_t u;
-
- u.d = d;
- if (big_endian)
- return (u.i[0] == i && u.i[1] == j);
- else
- return (u.i[1] == i && u.i[0] == j);
-}
-
-void
-dpd_tests (void)
-{
- if (! compare32 (0.DF, 0x22500000U))
- abort ();
- if (! compare32 (-0.DF, 0xa2500000U))
- abort ();
- if (! compare32 (0.E-4DF, 0x22100000U))
- abort ();
- if (! compare32 (0.E-7DF, 0x21e00000U))
- abort ();
- if (! compare32 (0.E+3DF, 0x22800000U))
- abort ();
-
- if (! compare64 (0.DD, 0x2238000000000000ULL))
- abort ();
- if (! compare64 (-0.DD, 0xa238000000000000ULL))
- abort ();
- if (! compare64 (0.E-6DD, 0x2220000000000000ULL))
- abort ();
- if (! compare64 (0.E-7DD, 0x221c000000000000ULL))
- abort ();
- if (! compare64 (0.E+2DD, 0x2240000000000000ULL))
- abort ();
-
- if (! compare128 (0.DL, 0x2208000000000000ULL, 0x0000000000000000ULL))
- abort ();
- if (! compare128 (-0.DL, 0xa208000000000000ULL, 0x0000000000000000ULL))
- abort ();
- if (! compare128 (0.E-3DL, 0x2207400000000000ULL, 0x0000000000000000ULL))
- abort ();
- if (! compare128 (0.E-8DL, 0x2206000000000000ULL, 0x0000000000000000ULL))
- abort ();
- if (! compare128 (0.E+2DL, 0x2208800000000000ULL, 0x0000000000000000ULL))
- abort ();
-}
-
-void
-bid_tests (void)
-{
- if (! compare32 (0.DF, 0x32800000U))
- abort ();
- if (! compare32 (-0.DF, 0xb2800000U))
- abort ();
- if (! compare32 (0.E-4DF, 0x30800000U))
- abort ();
- if (! compare32 (0.E-7DF, 0x2f000000U))
- abort ();
- if (! compare32 (0.E+3DF, 0x34000000U))
- abort ();
-
- if (! compare64 (0.DD, 0x31c0000000000000ULL))
- abort ();
- if (! compare64 (-0.DD, 0xb1c0000000000000ULL))
- abort ();
- if (! compare64 (0.E-6DD, 0x3100000000000000ULL))
- abort ();
- if (! compare64 (0.E-7DD, 0x30e0000000000000ULL))
- abort ();
- if (! compare64 (0.E+2DD, 0x3200000000000000ULL))
- abort ();
-
- if (! compare128 (0.DL, 0x3040000000000000ULL, 0x0000000000000000ULL))
- abort ();
- if (! compare128 (-0.DL, 0xb040000000000000ULL, 0x0000000000000000ULL))
- abort ();
- if (! compare128 (0.E-3DL, 0x303a000000000000ULL, 0x0000000000000000ULL))
- abort ();
- if (! compare128 (0.E-8DL, 0x3030000000000000ULL, 0x0000000000000000ULL))
- abort ();
- if (! compare128 (0.E+2DL, 0x3044000000000000ULL, 0x0000000000000000ULL))
- abort ();
-}
-
-int
-main ()
-{
- u32_t u32;
-
- /* These sizes are probably always true for targets that support decimal
- float types, but check anyway. Abort so we can fix the test. */
- if ((sizeof (_Decimal64) != sizeof (long long))
- || (sizeof (_Decimal128) != 2 * sizeof (long long))
- || (sizeof (_Decimal32) != sizeof (_Decimal32)))
- abort ();
-
- u32.d = 1.DF;
-
- if (u32.i == 0x22500001)
- {
- big_endian = (u32.b[0] == 0x22);
- dpd_tests ();
- }
- else if (u32.i == 0x32800001)
- {
- big_endian = (u32.b[0] == 0x32);
- bid_tests ();
- }
- else
- abort (); /* unknown format; test problem */
-
- return 0;
-}
« no previous file with comments | « gcc/gcc/testsuite/gcc.dg/dfp/constants-hex.c ('k') | gcc/gcc/testsuite/gcc.dg/dfp/convert.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698