980526-1.c: New test.
authorFranz Sirl <Franz.Sirl-kernel@lauterbach.com>
Tue, 26 May 1998 23:01:48 +0000 (23:01 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 26 May 1998 23:01:48 +0000 (17:01 -0600)
        * gcc.dg/980526-1.c: New test.
        * gcc.c-torture/execute/980526-2.c: New test.

From-SVN: r20078

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/980526-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/980526-1.c [new file with mode: 0644]

index 8ea76f9..10e1f83 100644 (file)
@@ -1,3 +1,8 @@
+Tue May 26 23:58:03 1998  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+       * gcc.dg/980526-1.c: New test.
+       * gcc.c-torture/execute/980526-2.c: New test.
+
 Tue May 26 23:40:40 1998  Jeffrey A Law  (law@cygnus.com)
 
        * gcc.dg/980523-1.c: Change "ppc" to "powerpc".
diff --git a/gcc/testsuite/gcc.c-torture/execute/980526-2.c b/gcc/testsuite/gcc.c-torture/execute/980526-2.c
new file mode 100644 (file)
index 0000000..1823a00
--- /dev/null
@@ -0,0 +1,54 @@
+typedef unsigned int dev_t;
+typedef unsigned int kdev_t;
+
+static inline kdev_t to_kdev_t(int dev)
+{
+       int major, minor;
+       
+       if (sizeof(kdev_t) == 16)
+               return (kdev_t)dev;
+       major = (dev >> 8);
+       minor = (dev & 0xff);
+       return ((( major ) << 22 ) | (  minor )) ;
+
+}
+
+void do_mknod(const char * filename, int mode, kdev_t dev)
+{
+       if (dev==0x15800078)
+               exit(0);
+       else
+               abort();
+}
+
+
+char * getname(const char * filename)
+{
+       register unsigned int a1,a2,a3,a4,a5,a6,a7,a8,a9;
+       a1 = (unsigned int)(filename) *5 + 1;
+       a2 = (unsigned int)(filename) *6 + 2;
+       a3 = (unsigned int)(filename) *7 + 3;
+       a4 = (unsigned int)(filename) *8 + 4;
+       a5 = (unsigned int)(filename) *9 + 5;
+       a6 = (unsigned int)(filename) *10 + 5;
+       a7 = (unsigned int)(filename) *11 + 5;
+       a8 = (unsigned int)(filename) *12 + 5;
+       a9 = (unsigned int)(filename) *13 + 5;
+       return (char *)(a1*a2+a3*a4+a5*a6+a7*a8+a9);
+}
+
+int sys_mknod(const char * filename, int mode, dev_t dev)
+{
+       int error;
+       char * tmp;
+
+       tmp = getname(filename);
+       error = ((long)( tmp )) ;
+       do_mknod(tmp,mode,to_kdev_t(dev));
+       return error;
+}
+
+int main(void)
+{
+       return sys_mknod("test",1,0x12345678);
+}
diff --git a/gcc/testsuite/gcc.dg/980526-1.c b/gcc/testsuite/gcc.dg/980526-1.c
new file mode 100644 (file)
index 0000000..b5e5c94
--- /dev/null
@@ -0,0 +1,17 @@
+/* { dg-do compile { target rs6000-*-*-* powerpc-*-*-* } } */
+/* { dg-options "-O2 -fpic" } */
+
+int
+test(void)
+{
+    double value, maxValue = - (__extension__  ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) { __l: 0x7ff0000000000000ULL }).__d)  ;
+    int idx, maxIdx = 1;
+
+    for (idx = 1; idx < 22; idx++) {
+        if (value > maxValue) {
+            maxValue = value;
+            maxIdx = idx;
+        }
+    }
+    return 0 ;
+}