diff options
author | 2022-05-10 17:11:23 +0200 | |
---|---|---|
committer | 2022-05-10 11:11:23 -0400 | |
commit | c7a52e6602131dc35adafbc8cb03c2e45887b4c5 (patch) | |
tree | 3a304a174462dab65ba717101809aafe9bc119f9 | |
parent | f3b701a02316e0b6dcc50f071be09c9be618c2d6 (diff) |
[llvm] Generate a dictionary for clang fuzzers. (#7686)
This generated dictionary consists of keywords and significant punctuation.
It's useful for fuzzers were inputs are C/C++/ObjC source code.
See https://reviews.llvm.org/D125166
-rw-r--r-- | projects/llvm/build.sh | 12 | ||||
-rw-r--r-- | projects/llvm/project.yaml | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/projects/llvm/build.sh b/projects/llvm/build.sh index b7634554..72934794 100644 --- a/projects/llvm/build.sh +++ b/projects/llvm/build.sh @@ -40,6 +40,13 @@ else llvm-special-case-list-fuzzer \ ) fi +# Fuzzers whose inputs are C-family source can use clang-fuzzer-dictionary. +readonly CLANG_DICT_FUZZERS=( \ + clang-fuzzer \ + clang-format-fuzzer \ + clang-objc-fuzzer \ + clang-pseudo-fuzzer \ +) case $SANITIZER in address) LLVM_SANITIZER="Address" ;; @@ -75,5 +82,10 @@ for fuzzer in "${FUZZERS[@]}"; do cp bin/$fuzzer $OUT done +ninja clang-fuzzer-dictionary +for fuzzer in "${CLANG_DICT_FUZZERS[@]}"; do + bin/clang-fuzzer-dictionary > $OUT/$fuzzer.dict +done + zip -j "${OUT}/clang-objc-fuzzer_seed_corpus.zip" $SRC/$LLVM/../clang/tools/clang-fuzzer/corpus_examples/objc/* zip -j "${OUT}/clangd-fuzzer_seed_corpus.zip" $SRC/$LLVM/../clang-tools-extra/clangd/test/* diff --git a/projects/llvm/project.yaml b/projects/llvm/project.yaml index 54aef01d..41981cab 100644 --- a/projects/llvm/project.yaml +++ b/projects/llvm/project.yaml @@ -15,6 +15,7 @@ auto_ccs: - "eneyman@google.com" - "bigcheesegs@gmail.com" - "davg@google.com" + - "sammccall@google.com" sanitizers: - address |