| /* { dg-do compile } */ |
| /* { dg-options "-fsanitize=shift -w" } */ |
| /* { dg-shouldfail "ubsan" } */ |
| |
| int x; |
| int |
| main (void) |
| { |
| /* None of the following should pass. */ |
| int A[1 >> -1] = {}; /* { dg-error "variable-sized object may not be initialized" } */ |
| int B[-1 >> -1] = {}; /* { dg-error "variable-sized object may not be initialized" } */ |
| int D[1 << -1] = {}; /* { dg-error "variable-sized object may not be initialized" } */ |
| int E[-1 << -1] = {}; /* { dg-error "variable-sized object may not be initialized" } */ |
| int F[-1 >> 200] = {}; /* { dg-error "variable-sized object may not be initialized" } */ |
| int G[1 << 200] = {}; /* { dg-error "variable-sized object may not be initialized" } */ |
| |
| return 0; |
| } |