1 /* { dg-do run } */
2 /* { dg-shouldfail "ubsan" } */
3 /* { dg-options "-fsanitize=shift -fsanitize-recover=shift-exponent -fno-sanitize-recover=shift-base -w -std=c99" } */
4 
5 int
main(void)6 main (void)
7 {
8   int a = -42;
9   int b = -43;
10   volatile int c = 129;
11   1 << c;
12   1 << (c + 1);
13   a << 1;
14   b << 1;
15 }
16 /* { dg-output "shift exponent 129 is too large for \[^\n\r]*-bit type 'int'\[^\n\r]*(\n|\r\n|\r)" } */
17 /* { dg-output "\[^\n\r]*shift exponent 130 is too large for \[^\n\r]*-bit type 'int'\[^\n\r]*(\n|\r\n|\r)" } */
18 /* { dg-output "\[^\n\r]*left shift of negative value -42\[^\n\r]*(\n|\r\n|\r)" } */
19