3 /* { dg-options " -fno-trapping-math" } */
6 int i1
= (int)(double)1.0 + INT_MAX
; /* { dg-warning "integer overflow" } */
7 int i2
= (int)(double)1 + INT_MAX
; /* { dg-warning "integer overflow" } */
8 int i3
= 1 + INT_MAX
; /* { dg-warning "integer overflow" } */
9 int i4
= +1 + INT_MAX
; /* { dg-warning "integer overflow" } */
10 int i5
= (int)((double)1.0 + INT_MAX
);
11 int i6
= (double)1.0 + INT_MAX
; /* { dg-warning "overflow in conversion from .double. to .int. changes value" } */
12 int i7
= 0 ? (int)(double)1.0 + INT_MAX
: 1;
13 int i8
= 1 ? 1 : (int)(double)1.0 + INT_MAX
;
14 int i9
= j
? (int)(double)1.0 + INT_MAX
: 1; /* { dg-warning "integer overflow" } */
15 unsigned int i10
= 0 ? (int)(double)1.0 + INT_MAX
: 9U;
16 unsigned int i11
= 1 ? 9U : (int)(double)1.0 + INT_MAX
;
17 unsigned int i12
= j
? (int)(double)1.0 + INT_MAX
: 9U; /* { dg-warning "integer overflow" } */
18 int i13
= 1 || (int)(double)1.0 + INT_MAX
< 0;
19 int i14
= 0 && (int)(double)1.0 + INT_MAX
< 0;
20 int i15
= 0 || (int)(double)1.0 + INT_MAX
< 0; /* { dg-warning "integer overflow" } */
21 int i16
= 1 && (int)(double)1.0 + INT_MAX
< 0; /* { dg-warning "integer overflow" } */
22 int i17
= j
|| (int)(double)1.0 + INT_MAX
< 0; /* { dg-warning "integer overflow" } */
23 int i18
= j
&& (int)(double)1.0 + INT_MAX
< 0; /* { dg-warning "integer overflow" } */