| /* { dg-do run } */ |
| /* { dg-options "-O2" } */ |
| |
| signed char a[] = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23 + 1 }; |
| signed char b[] = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1 }; |
| signed char c[] = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2 }; |
| signed char d[] = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3 }; |
| signed char e[] = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3 }; |
| struct A { signed char a[64]; int b; } f = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23 + 1, |
| 101 }; |
| struct A g = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 101 }; |
| struct A h = { |
| { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23 }, |
| 101 }; |
| struct B { signed char a[65]; int b; } k = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2 }; |
| struct C { signed char a[66]; int b; } l = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3 }; |
| struct D { signed char a[67]; int b; } m = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4 }; |
| struct E { signed char a[227]; int b; } n = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4 }; |
| signed char o[] = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, -3, 4 }; |
| signed char p[] = { |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 110, 15, |
| 109, 16, 108, 17, 107, 18, 106, 19, 105, 20, 104, 21, 103, 22, 102, 23, |
| 1, 2, 3 + 1, 5 }; |
| |
| int |
| main () |
| { |
| if (sizeof (a) != 64 |
| || sizeof (b) != 65 |
| || sizeof (c) != 66 |
| || sizeof (d) != 67 |
| || sizeof (e) != 227 |
| || sizeof (o) != 228 |
| || sizeof (p) != 228) |
| __builtin_abort (); |
| for (int i = 0; i < 32; ++i) |
| { |
| int j; |
| if (i < 14) |
| j = i + 1; |
| else if (i & 1) |
| j = 15 + (i - 15) / 2; |
| else |
| j = 110 - (i - 14) / 2; |
| if (a[i] != j |
| || (i != 31 && a[i + 32] != j) |
| || b[i] != j |
| || b[i + 32] != j |
| || c[i] != j |
| || c[i + 32] != j |
| || d[i] != j |
| || d[i + 32] != j |
| || e[i] != j |
| || e[i + 32] != j |
| || e[i + 64] != j |
| || e[i + 96] != j |
| || e[i + 128] != j |
| || e[i + 160] != j |
| || e[i + 192] != j |
| || f.a[i] != j |
| || (i != 31 && f.a[i + 32] != j) |
| || g.a[i] != j |
| || g.a[i + 32] != j |
| || h.a[i] != j |
| || h.a[i + 32] != j |
| || k.a[i] != j |
| || k.a[i + 32] != j |
| || l.a[i] != j |
| || l.a[i + 32] != j |
| || m.a[i] != j |
| || m.a[i + 32] != j |
| || n.a[i] != j |
| || n.a[i + 32] != j |
| || n.a[i + 64] != j |
| || n.a[i + 96] != j |
| || n.a[i + 128] != j |
| || n.a[i + 160] != j |
| || n.a[i + 192] != j) |
| __builtin_abort (); |
| } |
| if (a[63] != 24 |
| || b[64] != 1 |
| || c[64] != 1 |
| || c[65] != 2 |
| || d[64] != 1 |
| || d[65] != 2 |
| || d[66] != 3 |
| || e[224] != 1 |
| || e[225] != 2 |
| || e[226] != 3 |
| || f.a[63] != 24 |
| || f.b != 101 |
| || g.b != 101 |
| || h.b != 101 |
| || k.a[64] != 1 |
| || k.b != 2 |
| || l.a[64] != 1 |
| || l.a[65] != 2 |
| || l.b != 3 |
| || m.a[64] != 1 |
| || m.a[65] != 2 |
| || m.a[66] != 3 |
| || m.b != 4 |
| || n.a[224] != 1 |
| || n.a[225] != 2 |
| || n.a[226] != 3 |
| || n.b != 4 |
| || __builtin_memcmp (e, o, 226) |
| || o[226] != -3 |
| || o[227] != 4 |
| || __builtin_memcmp (e, p, 226) |
| || p[226] != 4 |
| || p[227] != 5) |
| __builtin_abort (); |
| } |