On Wed, Sep 06, 2017 at 07:47:29PM +0800, 吴潍浠(此彼) wrote: > Hi Jakub > I compiled libjpeg-turbo and libdng_sdk with options "-g -O3 -Wall > -fsanitize-coverage=trace-pc,trace-cmp -fsanitize=address". > And run my fuzzer with pc and cmp feedbacks for hours. It works fine. > About __sanitizer_cov_trace_cmp{f,d} , yes, it isn't provided by llvm. But > once we trace integer comparisons, why not real type comparisons. > I remember Dmitry said it is not enough useful to trace real type comparisons > because it is rare to see them in programs. > But libdng_sdk really has real type comparisons. So I want to keep them and > implementing __sanitizer_cov_trace_const_cmp{f,d} may be necessary.
Ok. Please make sure those entrypoints make it into the various example __sanitier_cov_trace* fuzzer implementations though, so that people using -fsanitize-coverage=trace-cmp in GCC will not need to hack stuff themselves. At least it should be added to sanitizer_common (both in LLVM and GCC). BTW, https://clang.llvm.org/docs/SanitizerCoverage.html shows various other -fsanitize-coverage= options, some of them terribly misnamed (e.g. trace-gep using some weirdo LLVM IL acronym instead of being named by what it really traces (trace-array-idx or something similar)). Any plans to implement some or all of those? Jakub