| /* PR29970, PR91038 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -Wunused-variable" } */ |
| |
| |
| int foo0(void) |
| { |
| int c = *(*(*({ int n = 10; int (*x)[n][n] = __builtin_malloc(sizeof *x); x; }) + 5) + 5); |
| return c; |
| } |
| |
| int foo1(void) |
| { |
| int c = *(5 + *(5 + *({ int n = 10; int (*x)[n][n] = __builtin_malloc(sizeof *x); x; }))); |
| return c; |
| } |
| |
| int bar2(void) |
| { |
| int c = (*({ int n = 10; struct { int y[n]; int z; }* x = __builtin_malloc(sizeof *x); x; })).z; |
| return c; |
| } |
| |
| int bar3(void) |
| { |
| int n = 2; /* { dg-warning "unused variable" } */ |
| int c = (*({ int n = 3; /* { dg-warning "unused variable" } */ |
| ({ int n = 10; int (*x)[n][n] = __builtin_malloc(sizeof *x); x; }); }))[5][5]; |
| return c; |
| } |
| |
| int bar3b(void) |
| { |
| int n = 2; /* { dg-warning "unused variable" } */ |
| int c = (*({ int n = 3; /* { dg-warning "unused variable" } */ |
| ({ int n = 10; int (*x)[n][n] = __builtin_malloc(sizeof *x); x; }); }))[0][0]; |
| return c; |
| } |
| |
| int bar4(void) |
| { |
| int n = 2; /* { dg-warning "unused variable" } */ |
| int c = *(5 + *( 5 + *({ int n = 3; /* { dg-warning "unused variable" } */ |
| ({ int n = 10; int (*x)[n][n] = __builtin_malloc(sizeof *x); x; }); }))); |
| return c; |
| } |
| |