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
fn(uint32_t so)8 fn (uint32_t so)
9 {
10   return (so + so) * (0x80000000 / 0 + 1); /* { dg-warning "division by zero" } */
11 }
12 
13 uint32_t
fn5(uint32_t so)14 fn5 (uint32_t so)
15 {
16   return (0x80000000 / 0 + 1) * (so + so); /* { dg-warning "division by zero" } */
17 }
18 
19 uint32_t
fn6(uint32_t so)20 fn6 (uint32_t so)
21 {
22   return (0x80000000 / 0 - 1) * (so + so); /* { dg-warning "division by zero" } */
23 }
24 
25 uint32_t
fn2(uint32_t so)26 fn2 (uint32_t so)
27 {
28   return (so + so) * (0x80000000 / 0 - 1); /* { dg-warning "division by zero" } */
29 }
30 
31 int32_t
fn3(int32_t so)32 fn3 (int32_t so)
33 {
34   return (so + so) * (0x80000000 / 0 + 1); /* { dg-warning "division by zero" } */
35 }
36 
37 int32_t
fn4(int32_t so)38 fn4 (int32_t so)
39 {
40   return (so + so) * (0x80000000 / 0 - 1); /* { dg-warning "division by zero" } */
41 }
42