I did this a long time ago with a janky python script, but now
clang-format has built-in support for this. I fed clang-format every
line with a #include and let it re-sort things according to the precise
LLVM rules for include ordering baked into clang-format these days.
I've reverted a number of files where the results of sorting includes
isn't healthy. Either places where we have legacy code relying on
particular include ordering (where possible, I'll fix these separately)
or where we have particular formatting around #include lines that
I didn't want to disturb in this patch.
This patch is *entirely* mechanical. If you get merge conflicts or
anything, just ignore the changes in this patch and run clang-format
over your #include lines in the files.
Sorry for any noise here, but it is important to keep these things
stable. I was seeing an increasing number of patches with irrelevant
re-ordering of #include lines because clang-format was used. This patch
at least isolates that churn, makes it easy to skip when resolving
conflicts, and gets us to a clean baseline (again).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304787
91177308-0d34-0410-b5e6-
96231b3b80d8
//===----------------------------------------------------------------------===//
#include "FuzzerCorpus.h"
+#include "FuzzerIO.h"
#include "FuzzerInterface.h"
#include "FuzzerInternal.h"
-#include "FuzzerIO.h"
#include "FuzzerMutate.h"
#include "FuzzerRandom.h"
#include "FuzzerShmem.h"
#include "FuzzerExtFunctions.h"
#include "FuzzerIO.h"
-#include "Windows.h"
#include "Psapi.h"
+#include "Windows.h"
namespace fuzzer {
//===----------------------------------------------------------------------===//
#include "FuzzerCorpus.h"
-#include "FuzzerInternal.h"
#include "FuzzerIO.h"
+#include "FuzzerInternal.h"
#include "FuzzerMutate.h"
#include "FuzzerRandom.h"
#include "FuzzerShmem.h"
// Merging corpora.
//===----------------------------------------------------------------------===//
-#include "FuzzerInternal.h"
-#include "FuzzerIO.h"
#include "FuzzerMerge.h"
+#include "FuzzerIO.h"
+#include "FuzzerInternal.h"
#include "FuzzerTracePC.h"
#include "FuzzerUtil.h"
// Mutate a test input.
//===----------------------------------------------------------------------===//
+#include "FuzzerMutate.h"
#include "FuzzerCorpus.h"
#include "FuzzerDefs.h"
#include "FuzzerExtFunctions.h"
#include "FuzzerIO.h"
-#include "FuzzerMutate.h"
#include "FuzzerOptions.h"
namespace fuzzer {
#include "FuzzerIO.h"
#include "FuzzerShmem.h"
-#include <sys/types.h>
-#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
-#include <sys/mman.h>
#include <semaphore.h>
#include <stdio.h>
#include <stdlib.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/types.h>
#include <unistd.h>
namespace fuzzer {
#include "FuzzerIO.h"
#include "FuzzerShmem.h"
-#include <sys/types.h>
-#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
namespace fuzzer {
//
//===----------------------------------------------------------------------===//
+#include "FuzzerTracePC.h"
#include "FuzzerCorpus.h"
#include "FuzzerDefs.h"
#include "FuzzerDictionary.h"
#include "FuzzerExtFunctions.h"
#include "FuzzerIO.h"
-#include "FuzzerTracePC.h"
#include "FuzzerUtil.h"
#include "FuzzerValueBitMap.h"
#include <map>
//===----------------------------------------------------------------------===//
#include "FuzzerDictionary.h"
-#include "FuzzerInternal.h"
#include "FuzzerIO.h"
+#include "FuzzerInternal.h"
#include "FuzzerMutate.h"
#include "FuzzerTracePC.h"
#include <algorithm>
#if LIBFUZZER_WINDOWS
#include "FuzzerIO.h"
#include "FuzzerInternal.h"
+#include <Psapi.h>
#include <cassert>
#include <chrono>
#include <cstring>
#include <stdio.h>
#include <sys/types.h>
#include <windows.h>
-#include <Psapi.h>
namespace fuzzer {
Usage:
################################################################################
cat << EOF > test_fuzzer.cc
-#include <stdint.h>
#include <stddef.h>
+#include <stdint.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
if (size > 0 && data[0] == 'H')
if (size > 1 && data[1] == 'I')
*/
#include <assert.h>
-#include <stdio.h>
+#include <errno.h>
+#include <signal.h>
#include <stdint.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <signal.h>
#include <sys/resource.h>
#include <sys/time.h>
+#include <unistd.h>
-#include <iostream>
#include <fstream>
+#include <iostream>
#include <vector>
// Platform detection. Copied from FuzzerInternal.h
// Contains dummy functions used to avoid dependency on AFL.
#include <stdint.h>
-#include <stdlib.h>
#include <stdio.h>
+#include <stdlib.h>
extern "C" void __afl_manual_init() {}
// License. See LICENSE.TXT for details.
// abs(x) < 0 and y == Const puzzle, 64-bit variant.
-#include <cstring>
-#include <cstdint>
-#include <cstdlib>
#include <cstddef>
+#include <cstdint>
#include <cstdio>
+#include <cstdlib>
+#include <cstring>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
if (Size < 16) return 0;
// License. See LICENSE.TXT for details.
// abs(x) < 0 and y == Const puzzle.
-#include <cstring>
-#include <cstdint>
-#include <cstdlib>
#include <cstddef>
+#include <cstdint>
#include <cstdio>
+#include <cstdlib>
+#include <cstring>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
if (Size < 8) return 0;
// License. See LICENSE.TXT for details.
// Test with a more mallocs than frees, but no leak.
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
const int kAllocatedPointersSize = 10000;
int NumAllocatedPointers = 0;
// License. See LICENSE.TXT for details.
// Test that we don't creash in case of bad strcmp params.
+#include <cstddef>
#include <cstdint>
#include <cstring>
-#include <cstddef>
static volatile int Sink;
// Simple test for a fuzzer. The fuzzer must find the string "Hi!".
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
static volatile bool SeedLargeBuffer;
// Simple test for a fuzzer.
// Try to find the target using the indirect caller-callee pairs.
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <cstring>
#include <iostream>
// Test the the fuzzer is able to 'cleanse' the reproducer
// by replacing all irrelevant bytes with garbage.
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
if (Size >= 20 && Data[1] == '1' && Data[5] == '5' && Data[10] == 'A' &&
// Simple test for a cutom mutator.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
#include "FuzzerInterface.h"
// Simple test for a fuzzer. Must find a specific string
// used in std::string operator ==.
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
-#include <string>
#include <iostream>
+#include <string>
static volatile int Sink;
// Source code for a simple DSO.
#include <cstdint>
+#include <cstdio>
#include <cstdlib>
#include <cstring>
-#include <cstdio>
extern int DSO1(int a);
extern int DSO2(int a);
extern int DSOTestExtra(int a);
// Simple test for a fuzzer: find the interesting argument for div.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstring>
-#include <cstddef>
#include <iostream>
static volatile int Sink;
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find the string "FUZZ".
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find the string "FUZZER".
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
#define _LIBCPP_HAS_NO_ASAN
#include "FuzzerCorpus.h"
-#include "FuzzerInternal.h"
#include "FuzzerDictionary.h"
+#include "FuzzerInternal.h"
#include "FuzzerMerge.h"
#include "FuzzerMutate.h"
-#include "FuzzerTracePC.h"
#include "FuzzerRandom.h"
+#include "FuzzerTracePC.h"
#include "gtest/gtest.h"
#include <memory>
#include <set>
// License. See LICENSE.TXT for details.
// Test with a leak.
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
static volatile void *Sink;
// License. See LICENSE.TXT for details.
// Test with a leak.
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
static volatile int *Sink;
// Simple test for a fuzzer: find interesting value of array index.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstring>
-#include <cstddef>
#include <iostream>
static volatile int Sink;
// Simple test for a fuzzer. The fuzzer must find a particular string.
#include <cassert>
-#include <cstring>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
+#include <cstring>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
const char kString64Bytes[] =
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find a particular string.
-#include <cstring>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
+#include <cstring>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
// TODO: check other sizes.
// License. See LICENSE.TXT for details.
// This test should not be instrumented.
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
return 0;
// License. See LICENSE.TXT for details.
// Crash on the N-th execution.
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
#include <iostream>
static int Counter;
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find the empty string.
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
static volatile int *Null = 0;
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find the string "Hi!".
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
static volatile int Sink;
// Tests OOM handling when there is a single large allocation.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <cstring>
#include <iostream>
// Tests OOM handling.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <cstring>
#include <iostream>
// Tests OOM handling.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <cstring>
#include <iostream>
#include <thread>
// Simple test for a fuzzer. The fuzzer must find repeated bytes.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
-
-#include <cstring>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
+#include <cstring>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
int Matches1 = 0;
// License. See LICENSE.TXT for details.
// Test that we can find the minimal item in the corpus (3 bytes: "FUZ").
+#include <cstddef>
#include <cstdint>
+#include <cstdio>
#include <cstdlib>
-#include <cstddef>
#include <cstring>
-#include <cstdio>
static volatile int Sink;
// License. See LICENSE.TXT for details.
// Test that we can find the minimal item in the corpus (3 bytes: "FUZ").
+#include <cstddef>
#include <cstdint>
+#include <cstdio>
#include <cstdlib>
-#include <cstddef>
#include <cstring>
-#include <cstdio>
static volatile uint32_t Sink;
// Test for signed-integer-overflow.
#include <assert.h>
+#include <climits>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
-#include <climits>
static volatile int Sink;
static int Large = INT_MAX;
// Simple test for a fuzzer. The fuzzer must find several narrow ranges.
#include <cstdint>
+#include <cstdio>
#include <cstdlib>
#include <cstring>
-#include <cstdio>
extern int AllLines[];
// The fuzzer must find a string based on dictionary words:
// "Elvis"
// "Presley"
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <cstring>
#include <iostream>
// and then compares the last 4 bytes with the computed value.
// A fuzzer with cmp traces is expected to defeat this check.
#include <cstdint>
+#include <cstdio>
#include <cstdlib>
#include <cstring>
-#include <cstdio>
// A modified jenkins_one_at_a_time_hash initialized by non-zero,
// so that simple_hash(0) != 0. See also
// Simple test for a fuzzer. The fuzzer must find the string "Hi!".
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
static volatile int Sink;
// Threaded test for a fuzzer. The fuzzer should find "H"
#include <assert.h>
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
#include <cstring>
#include <iostream>
#include <thread>
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer, need just one byte to crash.
-#include <cstdint>
-#include <cstdlib>
#include <cstddef>
+#include <cstdint>
#include <cstdio>
+#include <cstdlib>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
if (Size > 0 && Data[Size/2] == 42) {
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find a particular string.
-#include <cstring>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
+#include <cstring>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
char *S = (char*)Data;
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find a particular string.
-#include <cstring>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
+#include <cstring>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
if (Size >= 7) {
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find a particular string.
-#include <cstring>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
+#include <cstring>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
char *S = (char*)Data;
// The test spams to stderr and stdout.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdio>
-#include <cstddef>
#include <iostream>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
// License. See LICENSE.TXT for details.
// Break through a series of strcmp.
-#include <cstring>
+#include <cassert>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
-#include <cassert>
+#include <cstring>
bool Eq(const uint8_t *Data, size_t Size, const char *Str) {
char Buff[1024];
// Test that libFuzzer itself does not read out of bounds.
#include <assert.h>
+#include <cstddef>
#include <cstdint>
-#include <cstring>
#include <cstdlib>
-#include <cstddef>
+#include <cstring>
#include <iostream>
static volatile int Sink;
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find a particular string.
-#include <cstring>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
+#include <cstring>
static volatile int sink;
// License. See LICENSE.TXT for details.
// Test strstr and strcasestr hooks.
-#include <string>
-#include <string.h>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
+#include <string.h>
+#include <string>
// Windows does not have strcasestr and memmem, so we are not testing them.
#ifdef _WIN32
// The fuzzer must find several constants with swapped bytes.
#include <cstdint>
+#include <cstdio>
#include <cstdlib>
#include <cstring>
-#include <cstdio>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
if (Size < 14) return 0;
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find the interesting switch value.
+#include <cstddef>
#include <cstdint>
-#include <cstdlib>
#include <cstdio>
+#include <cstdlib>
#include <cstring>
-#include <cstddef>
int Switch(int a) {
switch(a) {
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find the interesting switch value.
+#include <cstddef>
#include <cstdint>
-#include <cstdlib>
#include <cstdio>
+#include <cstdlib>
#include <cstring>
-#include <cstddef>
static volatile int Sink;
// Make sure the fuzzer eventually finds all possible values of a variable
// within a range.
-#include <cstring>
+#include <cassert>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
-#include <cassert>
+#include <cstring>
#include <set>
const size_t N = 1 << 12;
// License. See LICENSE.TXT for details.
// The fuzzer should find a leak in a non-main thread.
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
#include <thread>
static volatile int *Sink;
// Threaded test for a fuzzer. The fuzzer should not crash.
#include <assert.h>
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
#include <cstring>
#include <thread>
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find the empty string.
-#include <cstdint>
#include <cstddef>
+#include <cstdint>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
static volatile int Zero = 0;
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. The fuzzer must find the string "Hi!".
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
static volatile int Sink;
// Tests -trace_malloc
#include <assert.h>
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
int *Ptr;
// License. See LICENSE.TXT for details.
// Simple test for a fuzzer. This test may trigger two different bugs.
+#include <cstddef>
#include <cstdint>
#include <cstdlib>
-#include <cstddef>
#include <iostream>
static volatile int *Null = 0;