diff options
author | Roger Sayle <roger@eyesopen.com> | 2006-02-27 02:25:57 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2006-02-27 02:25:57 +0000 |
commit | 53f1b560dbbc8485efa92063ef1e953604b40469 (patch) | |
tree | 39a95215865328da09197e35b41bcda3f4b5ffae | |
parent | efa1cdf01850b28c2f6f7035ebd4420259494615 (diff) | |
download | gcc-53f1b560dbbc8485efa92063ef1e953604b40469.zip gcc-53f1b560dbbc8485efa92063ef1e953604b40469.tar.gz gcc-53f1b560dbbc8485efa92063ef1e953604b40469.tar.bz2 |
re PR middle-end/19983 (__builtin_nan should allow 0X as well as 0x)
PR middle-end/19983
* real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
* gcc.c-torture/execute/ieee/builtin-nan-1.c: New test case.
From-SVN: r111470
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/real.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/ieee/builtin-nan-1.c | 17 |
4 files changed, 33 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e8c9d83..a97c50a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-02-26 Roger Sayle <roger@eyesopen.com> + + PR middle-end/19983 + * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes. + 2006-02-26 Zdenek Dvorak <dvorakz@suse.cz> * opts.c (decode_options): Do not handle flag_strength_reduce. @@ -2193,8 +2193,12 @@ real_nan (REAL_VALUE_TYPE *r, const char *str, int quiet, str++; if (*str == '0') { - if (*++str == 'x') - str++, base = 16; + str++; + if (*str == 'x' || *str == 'X') + { + base = 16; + str++; + } else base = 8; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4d272f7..af21868 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-02-26 Roger Sayle <roger@eyesopen.com> + + PR middle-end/19983 + * gcc.c-torture/execute/ieee/builtin-nan-1.c: New test case. + 2006-02-26 Zdenek Dvorak <dvorakz@suse.cz> * gcc.target/i386/20000614-2.c: Do not use -fno-strength-reduce. diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/builtin-nan-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/builtin-nan-1.c new file mode 100644 index 0000000..a487dd4 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/ieee/builtin-nan-1.c @@ -0,0 +1,17 @@ +/* PR middle-end/19983 */ + +typedef __SIZE_TYPE__ size_t; + +extern void abort(void); +extern int memcmp(const void *, const void *, size_t); + +double n1 = __builtin_nan("0x1"); +double n2 = __builtin_nan("0X1"); + +int main() +{ + if (memcmp (&n1, &n2, sizeof(double))) + abort(); + return 0; +} + |