diff options
-rw-r--r-- | clang-tools-extra/clangd/CMakeLists.txt | 3 | ||||
-rw-r--r-- | clang-tools-extra/clangd/fuzzer/CMakeLists.txt | 12 | ||||
-rw-r--r-- | clang-tools-extra/clangd/fuzzer/DummyClangdMain.cpp | 18 | ||||
-rw-r--r-- | clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp (renamed from clang-tools-extra/clangd/fuzzer/ClangdFuzzer.cpp) | 0 |
4 files changed, 24 insertions, 9 deletions
diff --git a/clang-tools-extra/clangd/CMakeLists.txt b/clang-tools-extra/clangd/CMakeLists.txt index 5152d5fc866..3b2d4447387 100644 --- a/clang-tools-extra/clangd/CMakeLists.txt +++ b/clang-tools-extra/clangd/CMakeLists.txt @@ -116,7 +116,8 @@ add_clang_library(clangDaemon ) add_subdirectory(refactor/tweaks) -if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE ) +if (LINUX) + # FIXME: Make fuzzer not use linux-specific APIs, build it everywhere. add_subdirectory(fuzzer) endif() add_subdirectory(tool) diff --git a/clang-tools-extra/clangd/fuzzer/CMakeLists.txt b/clang-tools-extra/clangd/fuzzer/CMakeLists.txt index ca76c977451..603073e6ef6 100644 --- a/clang-tools-extra/clangd/fuzzer/CMakeLists.txt +++ b/clang-tools-extra/clangd/fuzzer/CMakeLists.txt @@ -2,13 +2,10 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) set(LLVM_LINK_COMPONENTS support) -if(LLVM_USE_SANITIZE_COVERAGE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") -endif() - -add_clang_executable(clangd-fuzzer - EXCLUDE_FROM_ALL - ClangdFuzzer.cpp +# This fuzzer runs on oss-fuzz, so keep it around even if it looks unreferenced. +add_llvm_fuzzer(clangd-fuzzer + clangd-fuzzer.cpp + DUMMY_MAIN DummyClangdMain.cpp ) target_link_libraries(clangd-fuzzer @@ -20,5 +17,4 @@ target_link_libraries(clangd-fuzzer clangSema clangTooling clangToolingCore - ${LLVM_LIB_FUZZING_ENGINE} ) diff --git a/clang-tools-extra/clangd/fuzzer/DummyClangdMain.cpp b/clang-tools-extra/clangd/fuzzer/DummyClangdMain.cpp new file mode 100644 index 00000000000..cd5a6121751 --- /dev/null +++ b/clang-tools-extra/clangd/fuzzer/DummyClangdMain.cpp @@ -0,0 +1,18 @@ +//===---- DummyClangdMain.cpp - Entry point to sanity check the fuzzer ----===// +// +// 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 +// +//===----------------------------------------------------------------------===// +// +// Implementation of main so we can build and test without linking libFuzzer. +// +//===----------------------------------------------------------------------===// + +#include "llvm/FuzzMutate/FuzzerCLI.h" + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size); +int main(int argc, char *argv[]) { + return llvm::runFuzzerOnInputs(argc, argv, LLVMFuzzerTestOneInput); +} diff --git a/clang-tools-extra/clangd/fuzzer/ClangdFuzzer.cpp b/clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp index eba98261d80..eba98261d80 100644 --- a/clang-tools-extra/clangd/fuzzer/ClangdFuzzer.cpp +++ b/clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp |