Skip to content
Snippets Groups Projects
Commit c7fa5350 authored by Matt Morehouse's avatar Matt Morehouse
Browse files

Revert "[clang-fuzzer] Allow building without coverage instrumentation."

This reverts r315336 due to build breakage with gcc.
http://lab.llvm.org:8011/builders/ubuntu-gcc7.1-werror/builds/2173

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315355 91177308-0d34-0410-b5e6-96231b3b80d8
parent 0724462a
No related branches found
No related tags found
No related merge requests found
set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} FuzzMutate) if( LLVM_USE_SANITIZE_COVERAGE )
set(CXX_FLAGS_NOFUZZ ${CMAKE_CXX_FLAGS}) set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD})
set(DUMMY_MAIN DummyClangFuzzer.cpp) set(CXX_FLAGS_NOFUZZ "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer-no-link")
if(LLVM_USE_SANITIZE_COVERAGE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer")
set(CXX_FLAGS_NOFUZZ "${CXX_FLAGS_NOFUZZ} -fsanitize=fuzzer-no-link")
unset(DUMMY_MAIN)
endif()
# Hack to bypass LLVM's cmake sources check and allow multiple libraries and
# executables from this directory.
set(LLVM_OPTIONAL_SOURCES
ClangFuzzer.cpp
DummyClangFuzzer.cpp
ExampleClangProtoFuzzer.cpp
)
if(CLANG_ENABLE_PROTO_FUZZER)
# Create protobuf .h and .cc files, and put them in a library for use by
# clang-proto-fuzzer components.
find_package(Protobuf REQUIRED)
add_definitions(-DGOOGLE_PROTOBUF_NO_RTTI)
include_directories(${PROTOBUF_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS cxx_proto.proto)
set(LLVM_OPTIONAL_SOURCES ${LLVM_OPTIONAL_SOURCES} ${PROTO_SRCS})
add_clang_library(clangCXXProto
${PROTO_SRCS}
${PROTO_HDRS}
LINK_LIBS
${PROTOBUF_LIBRARIES}
)
# Build and include libprotobuf-mutator if(CLANG_ENABLE_PROTO_FUZZER)
include(ProtobufMutator) # Create protobuf .h and .cc files, and put them in a library for use by
include_directories(${ProtobufMutator_INCLUDE_DIRS}) # clang-proto-fuzzer components.
find_package(Protobuf REQUIRED)
# Build the protobuf->C++ translation library and driver. add_definitions(-DGOOGLE_PROTOBUF_NO_RTTI)
add_clang_subdirectory(proto-to-cxx) include_directories(${PROTOBUF_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Build the protobuf fuzzer protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS cxx_proto.proto)
add_clang_executable(clang-proto-fuzzer # Hack to bypass LLVM's cmake sources check and allow multiple libraries and
${DUMMY_MAIN} # executables from this directory.
ExampleClangProtoFuzzer.cpp set(LLVM_OPTIONAL_SOURCES
ClangFuzzer.cpp
ExampleClangProtoFuzzer.cpp
${PROTO_SRCS}
)
add_clang_library(clangCXXProto
${PROTO_SRCS}
${PROTO_HDRS}
LINK_LIBS
${PROTOBUF_LIBRARIES}
)
# Build and include libprotobuf-mutator
include(ProtobufMutator)
include_directories(${ProtobufMutator_INCLUDE_DIRS})
# Build the protobuf->C++ translation library and driver.
add_clang_subdirectory(proto-to-cxx)
# Build the protobuf fuzzer
add_clang_executable(clang-proto-fuzzer ExampleClangProtoFuzzer.cpp)
target_link_libraries(clang-proto-fuzzer
${ProtobufMutator_LIBRARIES}
clangCXXProto
clangHandleCXX
clangProtoToCXX
)
else()
# Hack to bypass LLVM's cmake sources check and allow multiple libraries and
# executables from this directory.
set(LLVM_OPTIONAL_SOURCES ClangFuzzer.cpp ExampleClangProtoFuzzer.cpp)
endif()
add_clang_subdirectory(handle-cxx)
add_clang_executable(clang-fuzzer
EXCLUDE_FROM_ALL
ClangFuzzer.cpp
) )
target_link_libraries(clang-proto-fuzzer target_link_libraries(clang-fuzzer
${ProtobufMutator_LIBRARIES}
clangCXXProto
clangHandleCXX clangHandleCXX
clangProtoToCXX
) )
endif() endif()
add_clang_subdirectory(handle-cxx)
add_clang_executable(clang-fuzzer
EXCLUDE_FROM_ALL
${DUMMY_MAIN}
ClangFuzzer.cpp
)
target_link_libraries(clang-fuzzer
clangHandleCXX
)
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
using namespace clang_fuzzer; using namespace clang_fuzzer;
extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) { return 0; }
extern "C" int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) { extern "C" int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) {
std::string s((const char *)data, size); std::string s((const char *)data, size);
HandleCXX(s, {"-O2"}); HandleCXX(s, {"-O2"});
......
//===-- DummyClangFuzzer.cpp - Entry point to sanity check fuzzers --------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// Provides a main() to build without linking libFuzzer.
//
//===----------------------------------------------------------------------===//
#include "llvm/FuzzMutate/FuzzerCLI.h"
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size);
extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv);
int main(int argc, char *argv[]) {
return llvm::runFuzzerOnInputs(argc, argv, LLVMFuzzerTestOneInput,
LLVMFuzzerInitialize);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment