#ifndef LLVM_CODEGEN_WINEHFUNCINFO_H
#define LLVM_CODEGEN_WINEHFUNCINFO_H
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/SmallVector.h"
#include <cstdint>
#include <limits>
#include <utility>
namespace llvm {
class AllocaInst;
class BasicBlock;
class FuncletPadInst;
class Function;
class GlobalVariable;
class Instruction;
class InvokeInst;
class MachineBasicBlock;
class MCSymbol;
MBBOrBasicBlock;
struct CxxUnwindMapEntry { … };
struct SEHUnwindMapEntry { … };
struct WinEHHandlerType { … };
struct WinEHTryBlockMapEntry { … };
enum class ClrHandlerType { … };
struct ClrEHUnwindMapEntry { … };
struct WinEHFuncInfo { … };
void calculateWinCXXEHStateNumbers(const Function *ParentFn,
WinEHFuncInfo &FuncInfo);
void calculateSEHStateNumbers(const Function *ParentFn,
WinEHFuncInfo &FuncInfo);
void calculateClrEHStateNumbers(const Function *Fn, WinEHFuncInfo &FuncInfo);
void calculateCXXStateForAsynchEH(const BasicBlock *BB, int State,
WinEHFuncInfo &FuncInfo);
void calculateSEHStateForAsynchEH(const BasicBlock *BB, int State,
WinEHFuncInfo &FuncInfo);
}
#endif