OSDN Git Service

New compilation test case.
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Dec 2000 13:47:09 +0000 (13:47 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Dec 2000 13:47:09 +0000 (13:47 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38414 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/20001221-1.c [new file with mode: 0644]

index 1dcc6db..0bc3480 100644 (file)
@@ -1,3 +1,7 @@
+2000-12-21  Bernd Schmidt  <bernds@redhat.com>
+
+       * gcc.c-torture/compile/20001221-1.c: New test.
+
 2000-12-20  Richard Henderson  <rth@redhat.com>
 
        * g++.old-deja/g++.pt/crash36.C: Update error lines.
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001221-1.c b/gcc/testsuite/gcc.c-torture/compile/20001221-1.c
new file mode 100644 (file)
index 0000000..66ae714
--- /dev/null
@@ -0,0 +1,70 @@
+static void
+foo ()
+{
+  long maplength;
+  int type;
+  {
+    const long nibbles = 8;
+    char buf1[nibbles + 1];
+    char buf2[nibbles + 1];
+    char buf3[nibbles + 1];
+    buf1[nibbles] = '\0';
+    buf2[nibbles] = '\0';
+    buf3[nibbles] = '\0';
+    ((nibbles) <= 16
+     ? (({
+       void *__s = (buf1);
+       union
+        {
+          unsigned int __ui;
+          unsigned short int __usi;
+          unsigned char __uc;
+        }
+       *__u = __s;
+       unsigned char __c = (unsigned char)('0');
+       switch ((unsigned int) (nibbles))
+        {
+         case 16:
+          __u->__ui = __c * 0x01010101;
+          __u = __extension__ ((void *) __u + 4);
+         case 12:
+          __u->__ui = __c * 0x01010101;
+          __u = __extension__ ((void *) __u + 4);
+         case 0:
+          break;
+        }
+       __s;
+     }))
+     : 0);
+    ((nibbles) <= 16
+     ? (({
+       void *__s = (buf2);
+       union
+        {
+          unsigned int __ui;
+          unsigned short int __usi;
+          unsigned char __uc;
+        }
+       *__u = __s;
+       unsigned char __c = (unsigned char)('0');
+       switch ((unsigned int) (nibbles))
+        {
+         case 16:
+          __u->__ui = __c * 0x01010101;
+          __u = __extension__ ((void *) __u + 4);
+         case 12:
+          __u->__ui = __c * 0x01010101;
+          __u = __extension__ ((void *) __u + 4);
+         case 8:
+          __u->__ui = __c * 0x01010101; 
+          __u = __extension__ ((void *) __u + 4);
+         case 4:
+          __u->__ui = __c * 0x01010101;
+         case 0:
+          break;
+        }
+       __s;
+     }))
+     : 0);
+  }
+}