first of all, ANSI C did not specify the range of int till C99 which is ISO/IEC C. To say ANSI C range of int to be ... is incorrect. Also, C compiler represent signed integer in two's complement, the range should have been -32768 to 32767.
short i = 32767;
printf ("%d ", i);
i++;
printf ("%d\n", i);
you get
32767 -32768