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)8fn (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)14fn5 (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)20fn6 (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)26fn2 (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)32fn3 (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)38fn4 (int32_t so) 39 { 40 return (so + so) * (0x80000000 / 0 - 1); /* { dg-warning "division by zero" } */ 41 } 42