aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Sam McCall <sam.mccall@gmail.com>2022-05-10 17:11:23 +0200
committerGravatar GitHub <noreply@github.com>2022-05-10 11:11:23 -0400
commitc7a52e6602131dc35adafbc8cb03c2e45887b4c5 (patch)
tree3a304a174462dab65ba717101809aafe9bc119f9
parentf3b701a02316e0b6dcc50f071be09c9be618c2d6 (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.sh12
-rw-r--r--projects/llvm/project.yaml1
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