1unsigned
2good (unsigned src, unsigned o5, unsigned w5)
3{
4  return src & ~((w5 == 0) ? (~0 << o5) : (1 << o5));
5}
6
7unsigned
8bad (unsigned src, unsigned o5, unsigned w5)
9{
10  return src & ((w5 == 0) ? ~(~0 << o5) : ~(1 << o5));
11}
12
13