diff options
author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-27 02:25:57 +0000 |
---|---|---|
committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-27 02:25:57 +0000 |
commit | 466fed6e96e98563cfc6e4237a6c9426ce7e83c5 (patch) | |
tree | 39a95215865328da09197e35b41bcda3f4b5ffae | |
parent | 4f87b914a9ddeb696b51496c53278ed86e4ac1dd (diff) | |
download | gcc-466fed6e96e98563cfc6e4237a6c9426ce7e83c5.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111470 138bc75d-0d04-0410-961f-82ee72b054a4
-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 e8c9d83c6d4..a97c50ade2f 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. diff --git a/gcc/real.c b/gcc/real.c index 5d5b12ff7e8..c4b6479067f 100644 --- a/gcc/real.c +++ b/gcc/real.c @@ -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 4d272f7de4c..af218682acd 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 00000000000..a487dd4afd9 --- /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; +} + |