1 /* PR middle-end/70992 */
2 /* { dg-do compile } */
3
4 typedef unsigned int uint32_t;
5 typedef int int32_t;
6
7 uint32_t
8 fn (uint32_t so)
9 {
10 return (so + so) * (0x80000000 / 0 + 1); /* { dg-warning "division by zero" } */
11 }
12
13 uint32_t
14 fn5 (uint32_t so)
15 {
16 return (0x80000000 / 0 + 1) * (so + so); /* { dg-warning "division by zero" } */
17 }
18
19 uint32_t
20 fn6 (uint32_t so)
21 {
22 return (0x80000000 / 0 - 1) * (so + so); /* { dg-warning "division by zero" } */
23 }
24
25 uint32_t
26 fn2 (uint32_t so)
27 {
28 return (so + so) * (0x80000000 / 0 - 1); /* { dg-warning "division by zero" } */
29 }
30
31 int32_t
32 fn3 (int32_t so)
33 {
34 return (so + so) * (0x80000000 / 0 + 1); /* { dg-warning "division by zero" } */
35 }
36
37 int32_t
38 fn4 (int32_t so)
39 {
40 return (so + so) * (0x80000000 / 0 - 1); /* { dg-warning "division by zero" } */
41 }