text: /*===- 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
  