Zonotora wrote: Hi again, I have now finally gotten time and updated the patch so that the unnecessary emits I mentioned in the initial commit are avoided. The current patch introduces a number of new fsanitizer flags to separate integer conversions from bitfield conversions. E.g.,
- ``-fsanitize=implicit-unsigned-bitfield-truncation`` - ``-fsanitize=implicit-signed-bitfield-truncation`` - ``-fsanitize=implicit-bitfield-sign-change`` - ``-fsanitize=implicit-bitfield-truncation`` - ``-fsanitize=implicit-bitfield-arithmetic-value-change`` - ``-fsanitize=implicit-bitfield-conversion`` - ``-fsanitize=implicit-integer-conversion`` <---- This used to be ``-fsanitize=implicit-conversion`` ``-fsanitize=implicit-conversion`` will now represent ``-fsanitize=implicit-integer-conversion`` and ``-fsanitize=implicit-bitfield-conversion``. Previously the following: ```c typedef struct { unsigned char a:4; } X; int main(void) { X x; unsigned int a = 272; x.a = a; return 0; } ``` emitted a implict integer conversion error in the assignment of `x.a = a` with the ``-fsanitize=implicit-integer-conversion``. This is no longer the case as the assignment involves bitfields. To get the emission error, one would have to include the ``-fsanitize=implicit-bitfield-conversion`` flag instead. I have compiled clang with the -fsanitizer flag ``-fsanitize=implicit-bitfield-conversion`` without any problems. What are your thoughts on this new change? @vitalybuka @AaronBallman @LebedevRI @efriedma-quic https://github.com/llvm/llvm-project/pull/75481 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits