1 // PR 12242: should warn about out-of-range int->enum conversions
3 // { dg-options "-Wconversion -fpermissive" }
13 x = 10; // { dg-warning "invalid conversion from .int. to .X." "invalid" }
14 // { dg-warning "unspecified" "unspecified" { target *-*-* } .-1 }
15 x = 1; // { dg-warning "invalid conversion from .int. to .X." }
16 x = C; // { dg-error "cannot convert .Y. to .X. in assignment" }
17 x = D; // { dg-error "cannot convert .Y. to .X. in assignment" }
18 y = A; // { dg-error "cannot convert .X. to .Y. in assignment" }
19 x = y; // { dg-error "cannot convert .Y. to .X. in assignment" }
20 x = i; // { dg-warning "invalid conversion from .int. to .X." }
25 X a = static_cast<X> (10); // { dg-warning "unspecified" }
26 X b = static_cast<X> (0);
27 X c = static_cast<X> (1);
28 X d = static_cast<X> (2); // { dg-warning "unspecified" }
29 X f = static_cast<X> ((int)A);
30 X g = static_cast<X> (B);
31 X h = static_cast<X> (C);
32 X e = static_cast<X> (D); // { dg-warning "unspecified" }
35 enum QEvent { x = 42 };
39 QEvent x = ( QEvent ) 42000; // { dg-warning "unspecified" }
45 void bazz (int, int, int, int);
54 Z(4) // { dg-warning "unspecified" }