OSDN Git Service

[libFuzzer] Disable implicit builtin knowledge about memcmp-like functions when ...
authorDokyung Song <dokyungs@google.com>
Thu, 16 Jul 2020 21:24:06 +0000 (21:24 +0000)
committerDokyung Song <dokyungs@google.com>
Thu, 16 Jul 2020 22:53:54 +0000 (22:53 +0000)
commit12d1124c49beec0fb79d36944960e5bf0f236d4c
tree3eac0da0541b611aa36c8dece9544359ac541d45
parent2f99059aa09247c4c904f55be52fc5e84a4ece60
[libFuzzer] Disable implicit builtin knowledge about memcmp-like functions when -fsanitize=fuzzer-no-link is given.

Summary: This patch disables implicit builtin knowledge about memcmp-like functions when compiling the program for fuzzing, i.e., when -fsanitize=fuzzer(-no-link) is given. This allows libFuzzer to always intercept memcmp-like functions as it effectively disables optimizing calls to such functions into different forms. This is done by adding a set of flags (-fno-builtin-memcmp and others) in the clang driver. Individual -fno-builtin-* flags previously used in several libFuzzer tests are now removed, as it is now done automatically in the clang driver.

Reviewers: morehouse, hctim

Subscribers: cfe-commits, #sanitizers

Tags: #clang, #sanitizers

Differential Revision: https://reviews.llvm.org/D83987
clang/lib/Driver/SanitizerArgs.cpp
compiler-rt/test/fuzzer/memcmp.test
compiler-rt/test/fuzzer/memcmp64.test
compiler-rt/test/fuzzer/strcmp.test
compiler-rt/test/fuzzer/strncmp.test
compiler-rt/test/fuzzer/strstr.test