| /*===- DataFlow.h - a standalone DataFlow trace -------===// | |
| // | |
| // 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 | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // Internal header file to connect DataFlow.cpp and DataFlowCallbacks.cpp. | |
| //===----------------------------------------------------------------------===*/ | |
| #ifndef __LIBFUZZER_DATAFLOW_H | |
| #define __LIBFUZZER_DATAFLOW_H | |
| #include <cstddef> | |
| #include <cstdint> | |
| #include <sanitizer/dfsan_interface.h> | |
| // This data is shared between DataFlowCallbacks.cpp and DataFlow.cpp. | |
| struct CallbackData { | |
| size_t NumFuncs, NumGuards; | |
| const uintptr_t *PCsBeg, *PCsEnd; | |
| dfsan_label *FuncLabels; // Array of NumFuncs elements. | |
| bool *BBExecuted; // Array of NumGuards elements. | |
| }; | |
| extern CallbackData __dft; | |
| enum { | |
| PCFLAG_FUNC_ENTRY = 1, | |
| }; | |
| #endif // __LIBFUZZER_DATAFLOW_H |