modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20001221-1.c (about)

     1  /* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */
     2  static void
     3  foo ()
     4  {
     5    long maplength;
     6    int type;
     7    {
     8      const long nibbles = 8;
     9      char buf1[nibbles + 1];
    10      char buf2[nibbles + 1];
    11      char buf3[nibbles + 1];
    12      buf1[nibbles] = '\0';
    13      buf2[nibbles] = '\0';
    14      buf3[nibbles] = '\0';
    15      ((nibbles) <= 16
    16       ? (({
    17         void *__s = (buf1);
    18         union
    19  	 {
    20  	   unsigned int __ui;
    21  	   unsigned short int __usi;
    22  	   unsigned char __uc;
    23  	 }
    24         *__u = __s;
    25         unsigned char __c = (unsigned char)('0');
    26         switch ((unsigned int) (nibbles))
    27  	 {
    28  	  case 16:
    29  	   __u->__ui = __c * 0x01010101;
    30  	   __u = __extension__ ((void *) __u + 4);
    31  	  case 12:
    32  	   __u->__ui = __c * 0x01010101;
    33  	   __u = __extension__ ((void *) __u + 4);
    34  	  case 0:
    35  	   break;
    36  	 }
    37         __s;
    38       }))
    39       : 0);
    40      ((nibbles) <= 16
    41       ? (({
    42         void *__s = (buf2);
    43         union
    44  	 {
    45  	   unsigned int __ui;
    46  	   unsigned short int __usi;
    47  	   unsigned char __uc;
    48  	 }
    49         *__u = __s;
    50         unsigned char __c = (unsigned char)('0');
    51         switch ((unsigned int) (nibbles))
    52  	 {
    53  	  case 16:
    54  	   __u->__ui = __c * 0x01010101;
    55  	   __u = __extension__ ((void *) __u + 4);
    56  	  case 12:
    57  	   __u->__ui = __c * 0x01010101;
    58  	   __u = __extension__ ((void *) __u + 4);
    59  	  case 8:
    60  	   __u->__ui = __c * 0x01010101; 
    61  	   __u = __extension__ ((void *) __u + 4);
    62  	  case 4:
    63  	   __u->__ui = __c * 0x01010101;
    64  	  case 0:
    65  	   break;
    66  	 }
    67         __s;
    68       }))
    69       : 0);
    70    }
    71  }