<<Should: char * x; short * y; [...] y = (short *)x; always generate a warning? >> I don't think so, why do you think it should?