Hello Don,
Surprise! c == -1.
No kidding!
Because 1 is an int, b gets promoted to int before the shift happens.
Why would it ever need to be promoted? Unless all (most?) CPUs have only size_t shifts, all three shifts should never promote the LHS.
-- ... <IXOYE><
