This appears to have broken the build for Windows. http://bb.pgr.jp/builders/msbuild-llvmclang-x64-msc18-DA/builds/116/steps/build_clang_all/logs/stdio
I am seeing this breakage locally as well. It seems that the LLVMFuzzer library is not being built (possibly because of LLVM_USE_SANITIZE_COVERAGE not being true?), and so clang-fuzzer gets link failures. ~Aaron On Thu, Jan 29, 2015 at 10:33 PM, Kostya Serebryany <[email protected]> wrote: > Hi chandlerc, > > Add clang-fuzzer target. > This is a very naive and slow clang fuzzer, but it has found > one new bug (PR22396) and hit a known bug (PR21954) in just a few minutes, > so I think it deserves to be committed. > I would appreciate further contribution to fuzzer/ClangFuzzer.cpp > to make if faster and more meaningful. > > http://reviews.llvm.org/D7289 > > Files: > CMakeLists.txt > fuzzer/ > fuzzer/CMakeLists.txt > fuzzer/ClangFuzzer.cpp > > Index: CMakeLists.txt > =================================================================== > --- CMakeLists.txt > +++ CMakeLists.txt > @@ -532,3 +532,7 @@ > ${CLANG_BINARY_DIR}/share/clang/cmake/ClangConfig.cmake > COPYONLY) > endif () > + > +if( LLVM_USE_SANITIZE_COVERAGE ) > + add_subdirectory(fuzzer) > +endif() > Index: fuzzer/CMakeLists.txt > =================================================================== > --- /dev/null > +++ fuzzer/CMakeLists.txt > @@ -0,0 +1,17 @@ > +set(LLVM_LINK_COMPONENTS support) > + > +add_clang_executable(clang-fuzzer > + ClangFuzzer.cpp > + ) > + > +target_link_libraries(clang-fuzzer > + clangAST > + clangASTMatchers > + clangBasic > + clangFrontend > + clangLex > + clangRewrite > + clangTooling > + clangToolingCore > + LLVMFuzzer > + ) > Index: fuzzer/ClangFuzzer.cpp > =================================================================== > --- /dev/null > +++ fuzzer/ClangFuzzer.cpp > @@ -0,0 +1,34 @@ > +//===-- ClangFuzzer.cpp - Fuzz Clang > --------------------------------------===// > +// > +// The LLVM Compiler Infrastructure > +// > +// This file is distributed under the University of Illinois Open Source > +// License. See LICENSE.TXT for details. > +// > +//===----------------------------------------------------------------------===// > +/// > +/// \file > +/// \brief This file implements a function that runs Clang on a single > +/// input. This function is then linked into the Fuzzer library. > +/// See llvm/lib/Fuzzer/README.txt for more instructions. > +/// > +//===----------------------------------------------------------------------===// > + > +#include <stdio.h> > +#include <stddef.h> > +#include <stdint.h> > + > +#include "clang/Tooling/Tooling.h" > +#include <string> > + > +// FIXME: The current implementation is very naive an inefficient: > +// - buildASTFromCode does a lot of driver work which slows down things. > +// - Errors are reported to stderr slowing things even further. > +// > +// What we really need here is a function that takes the array of bytes > +// and invokes preprocessor and/or parser on it, sending messages to > dev/null. > + > +extern "C" void TestOneInput(uint8_t *data, size_t size) { > + std::string S((char*)data, size); > + clang::tooling::buildASTFromCode(S); > +} > > EMAIL PREFERENCES > http://reviews.llvm.org/settings/panel/emailpreferences/ > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
