summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-27 02:25:57 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-27 02:25:57 +0000
commit466fed6e96e98563cfc6e4237a6c9426ce7e83c5 (patch)
tree39a95215865328da09197e35b41bcda3f4b5ffae
parent4f87b914a9ddeb696b51496c53278ed86e4ac1dd (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/real.c8
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/ieee/builtin-nan-1.c17
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;
+}
+