Fix linker error in clang-fuzzer following 89ea0b05207d45c145fb525df554b3b986ae379b.
authorAlexandre Ganea <alexandre.ganea@ubisoft.com>
Thu, 18 Jun 2020 14:07:18 +0000 (10:07 -0400)
committerAlexandre Ganea <alexandre.ganea@ubisoft.com>
Thu, 18 Jun 2020 14:07:31 +0000 (10:07 -0400)
This fixes:
tools/clang/tools/clang-fuzzer/handle-cxx/CMakeFiles/obj.clangHandleCXX.dir/handle_cxx.cpp.o:handle_cxx.cpp:function clang_fuzzer::HandleCXX(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, std::vector<char const*, std::allocator<char const*> > const&): error: undefined reference to 'clang::tooling::newInvocation(clang::DiagnosticsEngine*, llvm::SmallVector<char const*, 16u> const&)'

clang/include/clang/Tooling/Tooling.h
clang/tools/clang-fuzzer/handle-cxx/handle_cxx.cpp

index ced2405..4fb0c18 100644 (file)
@@ -505,7 +505,8 @@ void addTargetAndModeForProgramName(std::vector<std::string> &CommandLine,
 
 /// Creates a \c CompilerInvocation.
 CompilerInvocation *newInvocation(DiagnosticsEngine *Diagnostics,
-                                  const llvm::opt::ArgStringList &CC1Args);
+                                  const llvm::opt::ArgStringList &CC1Args,
+                                  const char *const BinaryName);
 
 } // namespace tooling
 
index 32d351f..1420402 100644 (file)
@@ -37,7 +37,7 @@ void clang_fuzzer::HandleCXX(const std::string &S,
       IntrusiveRefCntPtr<clang::DiagnosticIDs>(new DiagnosticIDs()), &*DiagOpts,
       &Diags, false);
   std::unique_ptr<clang::CompilerInvocation> Invocation(
-      tooling::newInvocation(&Diagnostics, CC1Args));
+      tooling::newInvocation(&Diagnostics, CC1Args, /*BinaryName=*/nullptr));
   std::unique_ptr<llvm::MemoryBuffer> Input =
       llvm::MemoryBuffer::getMemBuffer(S);
   Invocation->getPreprocessorOpts().addRemappedFile(FileName,