fix orner case in enum bitfield size warning

The shift amount could get 32 triggering a modulo shift behaviour
instead of producing the expected 0.
properly handle -Wbitfield-size corner case this time