diff options
| author | David Goldman <dallasftball@gmail.com> | 2019-10-21 20:45:02 +0000 |
|---|---|---|
| committer | David Goldman <dallasftball@gmail.com> | 2019-10-21 20:45:02 +0000 |
| commit | e5ecba4f53e77210c960606b4a3b5a411a4d5823 (patch) | |
| tree | fd5733c9cc7a566552f5d886c159929da46e84cb /clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp | |
| parent | 6f0ae81512c17ae8fb1033dc4e0b3d4c2424742c (diff) | |
| download | bcm5719-llvm-e5ecba4f53e77210c960606b4a3b5a411a4d5823.tar.gz bcm5719-llvm-e5ecba4f53e77210c960606b4a3b5a411a4d5823.zip | |
[clang-fuzzer] Add new fuzzer target for Objective-C
Summary:
- Similar to that of `clang-fuzzer` itself but instead only
targets Objective-C source files via cc1
- Also adds an example corpus directory containing some
input for Objective-C
Subscribers: mgorny, jfb, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69171
llvm-svn: 375453
Diffstat (limited to 'clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp')
| -rw-r--r-- | clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp b/clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp new file mode 100644 index 00000000000..908778f3d76 --- /dev/null +++ b/clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp @@ -0,0 +1,24 @@ +//===-- ClangObjectiveCFuzzer.cpp - Fuzz Clang ----------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +/// +/// \file +/// This file implements a function that runs Clang on a single Objective-C +/// input. This function is then linked into the Fuzzer library. +/// +//===----------------------------------------------------------------------===// + +#include "handle-cxx/handle_cxx.h" + +using namespace clang_fuzzer; + +extern "C" int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) { + std::string s(reinterpret_cast<const char *>(data), size); + HandleCXX(s, "./test.m", {"-O2"}); + return 0; +} + |

