aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr70992.c
blob: 56728e09d1b5f0042c7a3d12b50e64761a765ebc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* PR middle-end/70992 */
/* { dg-do compile } */

typedef unsigned int uint32_t;
typedef int int32_t;

uint32_t
fn (uint32_t so)
{
  return (so + so) * (0x80000000 / 0 + 1); /* { dg-warning "division by zero" } */
}

uint32_t
fn5 (uint32_t so)
{
  return (0x80000000 / 0 + 1) * (so + so); /* { dg-warning "division by zero" } */
}

uint32_t
fn6 (uint32_t so)
{
  return (0x80000000 / 0 - 1) * (so + so); /* { dg-warning "division by zero" } */
}

uint32_t
fn2 (uint32_t so)
{
  return (so + so) * (0x80000000 / 0 - 1); /* { dg-warning "division by zero" } */
}

int32_t
fn3 (int32_t so)
{
  return (so + so) * (0x80000000 / 0 + 1); /* { dg-warning "division by zero" } */
}

int32_t
fn4 (int32_t so)
{
  return (so + so) * (0x80000000 / 0 - 1); /* { dg-warning "division by zero" } */
}