82773231569ab296d5eeef87271567d623f8b34a
[oota-llvm.git] / lib / Fuzzer / test / CxxTokensTest.cpp
1 // Simple test for a fuzzer. The fuzzer must find a sequence of C++ tokens.
2 #include <cstdint>
3 #include <cstdlib>
4 #include <cstddef>
5 #include <cstring>
6 #include <iostream>
7
8 static void Found() {
9   std::cout << "BINGO; Found the target, exiting\n";
10   exit(1);
11 }
12
13 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
14   // looking for "thread_local unsigned A;"
15   if (Size < 24) return 0;
16   if (0 == memcmp(&Data[0], "thread_local", 12))
17     if (Data[12] == ' ')
18       if (0 == memcmp(&Data[13], "unsigned", 8))
19         if (Data[21] == ' ')
20           if (Data[22] == 'A')
21             if (Data[23] == ';')
22               Found();
23   return 0;
24 }
25