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