summaryrefslogtreecommitdiffstats
path: root/clang/tools
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2015-01-29 16:58:53 +0000
committerAaron Ballman <aaron@aaronballman.com>2015-01-29 16:58:53 +0000
commit66c653fab4e40ddcaead193db11510637be09f14 (patch)
tree41a4a477f8c8f524f0e1094a7528e677d5f5dcaf /clang/tools
parentef11698cac5effc0fb7735188ce667fa837d6f88 (diff)
downloadbcm5719-llvm-66c653fab4e40ddcaead193db11510637be09f14.tar.gz
bcm5719-llvm-66c653fab4e40ddcaead193db11510637be09f14.zip
Reverting r227453, which adds back the fuzzer library. Now excluding the clang-format fuzzer functionality based on LLVM_USE_SANITIZE_COVERAGE being set or unset.
llvm-svn: 227465
Diffstat (limited to 'clang/tools')
-rw-r--r--clang/tools/clang-format/CMakeLists.txt10
-rw-r--r--clang/tools/clang-format/fuzzer/CMakeLists.txt11
-rw-r--r--clang/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp25
3 files changed, 45 insertions, 1 deletions
diff --git a/clang/tools/clang-format/CMakeLists.txt b/clang/tools/clang-format/CMakeLists.txt
index 6a24e138efc..6ef0c2280f4 100644
--- a/clang/tools/clang-format/CMakeLists.txt
+++ b/clang/tools/clang-format/CMakeLists.txt
@@ -4,13 +4,21 @@ add_clang_executable(clang-format
ClangFormat.cpp
)
-target_link_libraries(clang-format
+set(CLANG_FORMAT_LIB_DEPS
clangBasic
clangFormat
clangRewrite
clangToolingCore
)
+target_link_libraries(clang-format
+ ${CLANG_FORMAT_LIB_DEPS}
+ )
+
+if( LLVM_USE_SANITIZE_COVERAGE )
+ add_subdirectory(fuzzer)
+endif()
+
install(TARGETS clang-format RUNTIME DESTINATION bin)
install(PROGRAMS clang-format-bbedit.applescript DESTINATION share/clang)
install(PROGRAMS clang-format-diff.py DESTINATION share/clang)
diff --git a/clang/tools/clang-format/fuzzer/CMakeLists.txt b/clang/tools/clang-format/fuzzer/CMakeLists.txt
new file mode 100644
index 00000000000..c7772fcb2f0
--- /dev/null
+++ b/clang/tools/clang-format/fuzzer/CMakeLists.txt
@@ -0,0 +1,11 @@
+set(LLVM_LINK_COMPONENTS support)
+
+add_clang_executable(clang-format-fuzzer
+ EXCLUDE_FROM_ALL
+ ClangFormatFuzzer.cpp
+ )
+
+target_link_libraries(clang-format-fuzzer
+ ${CLANG_FORMAT_LIB_DEPS}
+ LLVMFuzzer
+ )
diff --git a/clang/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp b/clang/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp
new file mode 100644
index 00000000000..fff4283277e
--- /dev/null
+++ b/clang/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp
@@ -0,0 +1,25 @@
+//===-- ClangFormatFuzzer.cpp - Fuzz the Clang format tool ----------------===//
+//
+// 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 format on a single
+/// input. This function is then linked into the Fuzzer library.
+///
+//===----------------------------------------------------------------------===//
+
+#include "clang/Format/Format.h"
+
+extern "C" void TestOneInput(uint8_t *data, size_t size) {
+ // FIXME: fuzz more things: different styles, different style features.
+ std::string s((const char *)data, size);
+ auto Style = getGoogleStyle(clang::format::FormatStyle::LK_Cpp);
+ Style.ColumnLimit = 60;
+ applyAllReplacements(s, clang::format::reformat(
+ Style, s, {clang::tooling::Range(0, s.size())}));
+}
OpenPOWER on IntegriCloud