Commit Graph

14 Commits

Author SHA1 Message Date
Matt Morehouse 7b6010cdde Reland "[clang-fuzzer] Allow building without coverage instrumentation."
This relands r315336 after fixing bot breakage.

llvm-svn: 315465
2017-10-11 15:51:12 +00:00
Matt Morehouse 51e4481cfe Revert "[clang-fuzzer] Allow building without coverage instrumentation."
This reverts r315336 due to build breakage with gcc.
http://lab.llvm.org:8011/builders/ubuntu-gcc7.1-werror/builds/2173

llvm-svn: 315355
2017-10-10 20:13:13 +00:00
Matt Morehouse bb380c3c72 [clang-fuzzer] Allow building without coverage instrumentation.
Summary:
Compile with DummyClangFuzzer.cpp as entry point rather than
libFuzzer's main when coverage instrumentation is missing.

https://llvm.org/pr34314

Reviewers: kcc, bogner, vitalybuka

Reviewed By: vitalybuka

Subscribers: cfe-commits, mgorny

Differential Revision: https://reviews.llvm.org/D38642

llvm-svn: 315336
2017-10-10 17:41:43 +00:00
Matt Morehouse f051f5d1e6 Integrate Kostya's clang-proto-fuzzer with LLVM.
Summary:
The clang-proto-fuzzer models a subset of C++ as a protobuf and
uses libprotobuf-mutator to generate interesting mutations of C++
programs.  Clang-proto-fuzzer has already found several bugs in
Clang (e.g., https://bugs.llvm.org/show_bug.cgi?id=33747,
https://bugs.llvm.org/show_bug.cgi?id=33749).

As with clang-fuzzer, clang-proto-fuzzer requires the following
cmake flags:
- CMAKE_C_COMPILER=clang
- CMAKE_CXX_COMPILER=clang++
- LLVM_USE_SANITIZE_COVERAGE=YES  // needed for libFuzzer
- LLVM_USE_SANITIZER=Address  // needed for libFuzzer

In addition, clang-proto-fuzzer requires:
- CLANG_ENABLE_PROTO_FUZZER=ON

clang-proto-fuzzer also requires the following dependencies:
- binutils  // needed for libprotobuf-mutator
- liblzma-dev  // needed for libprotobuf-mutator
- libz-dev  // needed for libprotobuf-mutator
- docbook2x  // needed for libprotobuf-mutator
- Recent version of protobuf [3.3.0 is known to work]

A working version of libprotobuf-mutator will automatically be
downloaded and built as an external project.

Implementation of clang-proto-fuzzer provided by Kostya
Serebryany.

https://bugs.llvm.org/show_bug.cgi?id=33829

Reviewers: kcc, vitalybuka, bogner

Reviewed By: kcc, vitalybuka

Subscribers: thakis, mgorny, cfe-commits

Differential Revision: https://reviews.llvm.org/D36324

llvm-svn: 310408
2017-08-08 20:15:04 +00:00
Kostya Serebryany 8328133dd2 do more processing in clang-fuzzer (use EmitAssemblyAction)
Summary: use EmitAssemblyAction in clang-fuzzer

Reviewers: klimek, rsmith

Reviewed By: klimek

Subscribers: cfe-commits, mgorny

Differential Revision: https://reviews.llvm.org/D34267

llvm-svn: 308045
2017-07-14 18:42:07 +00:00
Benjamin Kramer 2e8927a85b Unbreak the clang-fuzzer build after r291184.
llvm-svn: 291681
2017-01-11 16:42:26 +00:00
Mehdi Amini 320a5a615b Add missing header in ClangFuzzer (after r275882 cleanup)
llvm-svn: 275906
2016-07-18 20:33:09 +00:00
Kostya Serebryany e39fec5b06 [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. (following llvm r249214)
llvm-svn: 249215
2015-10-02 23:34:37 +00:00
Adrian Prantl d5aae9351b Fix clang-fuzzer build after r242499.
llvm-svn: 242505
2015-07-17 04:07:47 +00:00
Alexey Samsonov 2f640d9a0f [clang-fuzzer] Update clang-fuzzer to API change in r240225.
llvm-svn: 240685
2015-06-25 20:21:59 +00:00
Kostya Serebryany 9ba68b3566 fix clang-fuzzer and clang-format-fuzzer
llvm-svn: 236691
2015-05-07 04:01:39 +00:00
Kostya Serebryany 7862b01a63 [clang-fuzzer] make clang-fuzzer slightly faster by removing one redundant directory scan
llvm-svn: 236459
2015-05-04 21:14:45 +00:00
Manuel Klimek bea7dfbc5e Make the clang-fuzzer use the CompilerInstance directly.
Going through the driver is too slow.

llvm-svn: 233459
2015-03-28 00:42:36 +00:00
Manuel Klimek 667c152bce Add initial version of a clang-fuzzer.
llvm-svn: 233455
2015-03-28 00:07:39 +00:00