summaryrefslogtreecommitdiffstats
path: root/clang/tools/clang-fuzzer/handle-cxx
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/handle-cxx
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/handle-cxx')
-rw-r--r--clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp5
-rw-r--r--clang/tools/clang-fuzzer/handle-cxx/handle_cxx.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp b/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp
index bc172f23733..32d351f4c3e 100644
--- a/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp
+++ b/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp
@@ -21,12 +21,13 @@
using namespace clang;
void clang_fuzzer::HandleCXX(const std::string &S,
+ const char *FileName,
const std::vector<const char *> &ExtraArgs) {
llvm::opt::ArgStringList CC1Args;
CC1Args.push_back("-cc1");
for (auto &A : ExtraArgs)
CC1Args.push_back(A);
- CC1Args.push_back("./test.cc");
+ CC1Args.push_back(FileName);
llvm::IntrusiveRefCntPtr<FileManager> Files(
new FileManager(FileSystemOptions()));
@@ -39,7 +40,7 @@ void clang_fuzzer::HandleCXX(const std::string &S,
tooling::newInvocation(&Diagnostics, CC1Args));
std::unique_ptr<llvm::MemoryBuffer> Input =
llvm::MemoryBuffer::getMemBuffer(S);
- Invocation->getPreprocessorOpts().addRemappedFile("./test.cc",
+ Invocation->getPreprocessorOpts().addRemappedFile(FileName,
Input.release());
std::unique_ptr<tooling::ToolAction> action(
tooling::newFrontendActionFactory<clang::EmitObjAction>());
diff --git a/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.h b/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.h
index 8359bea9691..2126ae9ea37 100644
--- a/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.h
+++ b/clang/tools/clang-fuzzer/handle-cxx/handle_cxx.h
@@ -18,6 +18,7 @@
namespace clang_fuzzer {
void HandleCXX(const std::string &S,
+ const char *FileName,
const std::vector<const char *> &ExtraArgs);
} // namespace clang_fuzzer
OpenPOWER on IntegriCloud