1 /* PR91038 */
2 /* { dg-do run } */
3 /* { dg-options "-O2 -Wunused-variable" } */
4
5
6
7 void foo(void)
8 {
9 if (2 * sizeof(int) != sizeof((*({ int N = 2; int (*x)[9][N] = 0; x; })[1])))
10 __builtin_abort();
11 }
12
13 void bar(void)
14 {
15 if (2 * sizeof(int) != sizeof((*({ int N = 2; int (*x)[9][N] = 0; x; })[0])))
16 __builtin_abort();
17 }
18
19 void bar0(void)
20 {
21 if (2 * 9 * sizeof(int) != sizeof((*({ int N = 2; int (*x)[9][N] = 0; x; }))))
22 __builtin_abort();
23 }
24
25 void bar11(void)
26 {
27 sizeof(*((*({ int N = 2; int (*x)[9][N] = 0; x; }) + 0)));
28 }
29
30 void bar12(void)
31 {
32 if (2 * sizeof(int) != sizeof(*((*({ int N = 2; int (*x)[9][N] = 0; x; }) ))))
33 __builtin_abort();
34 }
35
36 void bar1(void)
37 {
38 if (2 * sizeof(int) != sizeof(*((*({ int N = 2; int (*x)[9][N] = 0; x; }) + 0))))
39 __builtin_abort();
40 }
41
42
43
44
45 int main()
46 {
47 foo();
48 bar0();
49 bar12();
50 bar1();
51 bar();
52 }
53