summaryrefslogtreecommitdiffstats
path: root/clang/tools/clang-fuzzer/ClangObjectiveCFuzzer.cpp
diff options
context:
space:
mode:
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