MaskRay added a comment. In D156821#4600605 <https://reviews.llvm.org/D156821#4600605>, @craig.topper wrote:
> In D156821#4600550 <https://reviews.llvm.org/D156821#4600550>, @MaskRay wrote: > >>> Currenly both Clang and GCC support the following set of flags that control >> >> code gen of signed overflow: >> >>> [...] >>> Howerver, clang ignores these flags for __builtin_abs(int) and its >>> higher-width >> >> versions, so passing minimum integer value always causes poison. >> >> This paragraph reads as if GCC emits a trap for `__builtin_abs` in -ftrapv >> mode, but it doesn't. That said, its `-fsanitize=signed-integer-overflow` >> does handle `__builtin_abs`. > > On X86 at least, gcc does call `__negvsi2` for `__builtin_abs` under -ftrapv. > https://godbolt.org/z/8dhn9bsv5 Thank you. You are right, sorry for my neglection. GCC may use either `__negvsi2` or `__subvsi3` for different ports. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156821/new/ https://reviews.llvm.org/D156821 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits