morehouse added a comment. In D83494#2148164 <https://reviews.llvm.org/D83494#2148164>, @dokyungs wrote:
> In D83494#2148043 <https://reviews.llvm.org/D83494#2148043>, @hctim wrote: > > > In D83494#2147608 <https://reviews.llvm.org/D83494#2147608>, @dokyungs > > wrote: > > > > > Builtin libfunc optimizations may transform memcmp and strcmp-like > > > functions. To disable such optimizations, -fno-builtin= flag was > > > additionally added in compiling new test cases. FWIW, the original test > > > cases didn't require such flags since other sanitizers including ASan > > > disables those optimizations in their LLVM pass by dropping libfunc > > > attribute in the call instructions. > > > > > > It sounds like we need to add `-fno-builtin` in the clang driver when > > building with sancov as well. Otherwise, users won't get any benefit of > > this patch without doing `clang++ -fsanitize=fuzzer my_fuzz_target.cpp > > -fno-builtin-strstr -fno-builtin-strncmp -fno-builtin-strcmp > > -fno-builtin-memcmp`? > > > Right. Apparently with `-O2` many calls to `memcmp`-like functions are > removed. I just wondered, though, what makes more sense: disabling such > optimization when building (i) with sancov, or (ii) with `-fsanitize=fuzzer`? > If we go for (i), would it make sense to do it in the SanitizerCoverage > module pass like other sanitizers do? What do you think? Also, can it be > addressed in a follow-up patch? My opinion is to make it part of `-fsanitize=fuzzer`, or maybe disable parts of the builtin optimization pass for functions with the `OptForFuzzing` attribute. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83494/new/ https://reviews.llvm.org/D83494 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits