aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@cygnus.co.uk>1999-12-02 12:37:50 +0000
committerBernd Schmidt <crux@gcc.gnu.org>1999-12-02 12:37:50 +0000
commitbc622faec91f80027c6dc146f9120fd50001d75a (patch)
treeb1c6dacc55d73fd9578de1e66830c1f2f4b65fff /gcc
parent8571e492c885a36b9eb04ff38033a53158881aa2 (diff)
downloadgcc-bc622faec91f80027c6dc146f9120fd50001d75a.zip
gcc-bc622faec91f80027c6dc146f9120fd50001d75a.tar.gz
gcc-bc622faec91f80027c6dc146f9120fd50001d75a.tar.bz2
Four new tests
From-SVN: r30759
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.c-torture/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/991202-1.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/991202-1.c16
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/991202-2.c17
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/991202-3.c22
5 files changed, 80 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/ChangeLog b/gcc/testsuite/gcc.c-torture/ChangeLog
index b37ebfd..53c8386 100644
--- a/gcc/testsuite/gcc.c-torture/ChangeLog
+++ b/gcc/testsuite/gcc.c-torture/ChangeLog
@@ -1,3 +1,10 @@
+1999-12-02 Bernd Schmidt <bernds@cygnus.co.uk>
+
+ * compile/991202-1.c: New test.
+ * execute/991202-1.c: New test.
+ * execute/991202-2.c: New test.
+ * execute/991202-3.c: New test.
+
1999-11-27 Bernd Schmidt <bernds@cygnus.co.uk>
* compile/991127-1.c: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/991202-1.c b/gcc/testsuite/gcc.c-torture/compile/991202-1.c
new file mode 100644
index 0000000..cc4f478
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/991202-1.c
@@ -0,0 +1,18 @@
+extern float A[], B[];
+extern float MAXNUMF;
+float chbevlf(float, float *, int);
+float expf(float), i1f(float), logf(float), sqrtf(float);
+
+float k1f(float xx)
+{
+ float x, y;
+
+ x = xx;
+ if( x <= 2.0 )
+ {
+ y = x * x - 2.0;
+ y = logf( 0.5f * x ) * i1f(x) + chbevlf( y, A, 7 ) / x;
+ return( y );
+ }
+ return( expf(-x) * chbevlf( (float)(8.0/x - 2.0), B, 10 ) / sqrtf(x) );
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/991202-1.c b/gcc/testsuite/gcc.c-torture/execute/991202-1.c
new file mode 100644
index 0000000..502acc7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/991202-1.c
@@ -0,0 +1,16 @@
+int x, y;
+
+int
+main()
+{
+ x = 2;
+ y = x;
+ do
+ {
+ x = y;
+ y = 2 * y;
+ }
+ while ( ! ((y - x) >= 20));
+ exit (0);
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/execute/991202-2.c b/gcc/testsuite/gcc.c-torture/execute/991202-2.c
new file mode 100644
index 0000000..fa97e2d
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/991202-2.c
@@ -0,0 +1,17 @@
+
+int
+f1 ()
+{
+ unsigned long x, y = 1;
+
+ x = ((y * 8192) - 216) % 16;
+ return x;
+}
+
+int
+main ()
+{
+ if (f1 () != 8)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/991202-3.c b/gcc/testsuite/gcc.c-torture/execute/991202-3.c
new file mode 100644
index 0000000..f5718b2
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/991202-3.c
@@ -0,0 +1,22 @@
+
+unsigned int f (unsigned int a)
+{
+ return a * 65536 / 8;
+}
+
+unsigned int g (unsigned int a)
+{
+ return a * 65536;
+}
+
+unsigned int h (unsigned int a)
+{
+ return a / 8;
+}
+
+int main ()
+{
+ if (f (65536) != h (g (65536)))
+ abort ();
+ exit (0);
+}