summaryrefslogtreecommitdiffstats
path: root/clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp
diff options
context:
space:
mode:
authorDavid Goldman <dallasftball@gmail.com>2019-10-21 20:45:02 +0000
committerDavid Goldman <dallasftball@gmail.com>2019-10-21 20:45:02 +0000
commite5ecba4f53e77210c960606b4a3b5a411a4d5823 (patch)
treefd5733c9cc7a566552f5d886c159929da46e84cb /clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp
parent6f0ae81512c17ae8fb1033dc4e0b3d4c2424742c (diff)
downloadbcm5719-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.cpp24
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;
+}
+
OpenPOWER on IntegriCloud