145
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-fsanitize=undefined -fno-sanitize-recover=integer-divide-by-zero -fno-sanitize-recover=shift -fdump-tree-optimized" } */
|
|
3 /* { dg-skip-if "" { *-*-* } { "-flto -fno-fat-lto-objects" } } */
|
|
4 /* { dg-final { scan-tree-dump-times "__ubsan_handle_divrem_overflow_abort" 1 "optimized" } } */
|
|
5 /* { dg-final { scan-tree-dump-times "__ubsan_handle_shift_out_of_bounds_abort" 1 "optimized" } } */
|
|
6 /* { dg-final { scan-tree-dump-times "__ubsan_handle_type_mismatch_v1" 1 "optimized" } } */
|
|
7 /* { dg-final { scan-tree-dump-not "__ubsan_handle_type_mismatch_v1_abort" "optimized" } } */
|
|
8
|
|
9 int
|
|
10 foo (int x, int y)
|
|
11 {
|
|
12 return x / y;
|
|
13 }
|
|
14
|
|
15 int
|
|
16 bar (int x, int y)
|
|
17 {
|
|
18 return x << y;
|
|
19 }
|
|
20
|
|
21 enum E { E0, E1, E2, E3 };
|
|
22
|
|
23 enum E
|
|
24 baz (enum E *x)
|
|
25 {
|
|
26 return *x;
|
|
27 }
|