Are you claiming that the following program could possibly print "-1" ?
#include <stdio.h> int main() { unsigned short a = 1; long b = a; printf("%ld\n", b); }