From the C99 standard, I can see that int_least16_t is guaranteed to have a width of at least 16 bits.
7.18.1.2 Minimum-width integer types
...
The typedef name uint_leastN_t designates an unsigned integer type with a width of at least N , such that no unsigned integer type with lesser size has at least the specified width. Thus, uint_least16_t denotes an unsigned integer type with a width of at least 16 bits.
...
From what I can tell, the standard only puts restrictions on the minimum width of the types, and not necessarily their rank. So on an architecture where int and short both have a width of 16 bits, is it possible that int_least16_t could be an alias for int, despite the fact that short has lesser rank?