1/* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */
2static void
3foo ()
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}
72