> May I ask how exactly you spotted the "shift-31-problem" in > drivers/i2c/busses/i2c-rcar.c: > - visual code review? > - static analysis, special compiler flags? This one. I run a set of static code analyziers when applying patches. One of them is 'cppcheck' which reported it. > According to feedback from GCC community [2], with 'gcc -std=gnu89', > shifting into (not past) the sign bit is "defined behavior" which is why > UBSAN doesn't report this as an issue in Linux kernel. That makes me I see. I guess it can be argued. Yet, BIT() solves other issues as well ('1' vs '1u'), so this was probably a reasonable move nonetheless, plus we are super-super-sure about the shifting now.
Attachment:
signature.asc
Description: PGP signature