summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-17 08:27:13 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-17 08:27:13 +0000
commit91017a7ccc37b4f4f400298fbfac44b3d63a8233 (patch)
treef33b1c01af6d711e8ccacd9b9e6521ec0486c100
parentabffed6865e0688fcadbf11b4597b12dc59641a0 (diff)
downloadgcc-91017a7ccc37b4f4f400298fbfac44b3d63a8233.tar.gz
* gcc.dg/c90-hexfloat-1.c, gcc.dg/c90-hexfloat-2.c,
gcc.dg/c99-hexfloat-1.c, gcc.dg/c99-hexfloat-2.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35074 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/c90-hexfloat-1.c7
-rw-r--r--gcc/testsuite/gcc.dg/c90-hexfloat-2.c24
-rw-r--r--gcc/testsuite/gcc.dg/c99-hexfloat-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/c99-hexfloat-2.c24
5 files changed, 64 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index aa0b211fb22..4ca32ad21e9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
+ * gcc.dg/c90-hexfloat-1.c, gcc.dg/c90-hexfloat-2.c,
+ gcc.dg/c99-hexfloat-1.c, gcc.dg/c99-hexfloat-2.c: New tests.
+
* gcc.dg/c90-enum-comma-1.c, gcc.dg/c90-idem-qual-1.c,
gcc.dg/c90-impl-decl-1.c, gcc.dg/c90-impl-int-1.c,
gcc.dg/c90-longlong.c, gcc.dg/c90-restrict-1.c,
diff --git a/gcc/testsuite/gcc.dg/c90-hexfloat-1.c b/gcc/testsuite/gcc.dg/c90-hexfloat-1.c
new file mode 100644
index 00000000000..9139677cad3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c90-hexfloat-1.c
@@ -0,0 +1,7 @@
+/* Test for hex floating point constants: in C99 only. Compiler test. */
+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
+
+double d = 0x1.2p2; /* { dg-bogus "warning" "warning in place of error" } */
+/* { dg-error "radix 16" "hex float error" { target *-*-* } 6 } */
diff --git a/gcc/testsuite/gcc.dg/c90-hexfloat-2.c b/gcc/testsuite/gcc.dg/c90-hexfloat-2.c
new file mode 100644
index 00000000000..d1a048da8bd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c90-hexfloat-2.c
@@ -0,0 +1,24 @@
+/* Test for hex floating point constants: in C99 only. Preprocessor test. */
+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
+/* { dg-do run } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
+
+#define f (
+#define l )
+#define str(x) #x
+#define xstr(x) str(x)
+
+/* C90: "0x1p+( 0x1p+)"; C99: "0x1p+f 0x1p+l" */
+const char *s = xstr(0x1p+f 0x1p+l);
+
+extern void abort (void);
+extern int strcmp (const char *, const char *);
+
+int
+main (void)
+{
+ if (strcmp (s, "0x1p+( 0x1p+)"))
+ abort ();
+ else
+ return 0; /* Correct C90 behaviour. */
+}
diff --git a/gcc/testsuite/gcc.dg/c99-hexfloat-1.c b/gcc/testsuite/gcc.dg/c99-hexfloat-1.c
new file mode 100644
index 00000000000..f4c147bcca0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c99-hexfloat-1.c
@@ -0,0 +1,6 @@
+/* Test for hex floating point constants: in C99 only. Compiler test. */
+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
+
+double d = 0x1.2p2; /* { dg-bogus "radix 16" "bogus C99 hex float error" } */
diff --git a/gcc/testsuite/gcc.dg/c99-hexfloat-2.c b/gcc/testsuite/gcc.dg/c99-hexfloat-2.c
new file mode 100644
index 00000000000..589f44048b4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c99-hexfloat-2.c
@@ -0,0 +1,24 @@
+/* Test for hex floating point constants: in C99 only. Preprocessor test. */
+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
+/* { dg-do run } */
+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
+
+#define f (
+#define l )
+#define str(x) #x
+#define xstr(x) str(x)
+
+/* C90: "0x1p+( 0x1p+)"; C99: "0x1p+f 0x1p+l" */
+const char *s = xstr(0x1p+f 0x1p+l);
+
+extern void abort (void);
+extern int strcmp (const char *, const char *);
+
+int
+main (void)
+{
+ if (strcmp (s, "0x1p+f 0x1p+l"))
+ abort ();
+ else
+ return 0; /* Correct C99 behaviour. */
+}