Indeed, I'm shocked.
In warning level 3 the following conversions do not cause warnings!
int i=5;
short s=i;
long l=5L;
int i=l;
long l=5L;
short s=l; // long to short !
double d=5.0;
int s=d; // double to int !
Now I wonder about the following:
unsigned int a=5U;
int b=6;
bool c=(a<b); // without any warning
if (a<b) {...} // signed/unsigned mismatch warning
Very obscure!
Torsten