#ifndef LLVM_DEBUGINFO_CODEVIEW_SYMBOLRECORD_H
#define LLVM_DEBUGINFO_CODEVIEW_SYMBOLRECORD_H
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/iterator.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/DebugInfo/CodeView/CVRecord.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/RecordSerialization.h"
#include "llvm/DebugInfo/CodeView/TypeIndex.h"
#include "llvm/Support/BinaryStreamArray.h"
#include "llvm/Support/Endian.h"
#include <cstdint>
#include <vector>
namespace llvm {
namespace codeview {
class SymbolRecord { … };
class ProcSym : public SymbolRecord { … };
class Thunk32Sym : public SymbolRecord { … };
class TrampolineSym : public SymbolRecord { … };
class SectionSym : public SymbolRecord { … };
class CoffGroupSym : public SymbolRecord { … };
class ScopeEndSym : public SymbolRecord { … };
class JumpTableSym : public SymbolRecord { … };
class CallerSym : public SymbolRecord { … };
struct DecodedAnnotation { … };
struct BinaryAnnotationIterator
: public iterator_facade_base<BinaryAnnotationIterator,
std::forward_iterator_tag,
DecodedAnnotation> { … };
class InlineSiteSym : public SymbolRecord { … };
struct PublicSym32Header { … };
class PublicSym32 : public SymbolRecord { … };
class RegisterSym : public SymbolRecord { … };
class ProcRefSym : public SymbolRecord { … };
class LocalSym : public SymbolRecord { … };
struct LocalVariableAddrRange { … };
struct LocalVariableAddrGap { … };
enum : uint16_t { … };
class DefRangeSym : public SymbolRecord { … };
class DefRangeSubfieldSym : public SymbolRecord { … };
struct DefRangeRegisterHeader { … };
class DefRangeRegisterSym : public SymbolRecord { … };
struct DefRangeSubfieldRegisterHeader { … };
class DefRangeSubfieldRegisterSym : public SymbolRecord { … };
struct DefRangeFramePointerRelHeader { … };
class DefRangeFramePointerRelSym : public SymbolRecord { … };
struct DefRangeRegisterRelHeader { … };
class DefRangeRegisterRelSym : public SymbolRecord { … };
class DefRangeFramePointerRelFullScopeSym : public SymbolRecord { … };
class BlockSym : public SymbolRecord { … };
class LabelSym : public SymbolRecord { … };
class ObjNameSym : public SymbolRecord { … };
class EnvBlockSym : public SymbolRecord { … };
class ExportSym : public SymbolRecord { … };
class FileStaticSym : public SymbolRecord { … };
class Compile2Sym : public SymbolRecord { … };
class Compile3Sym : public SymbolRecord { … };
class FrameProcSym : public SymbolRecord { … };
class CallSiteInfoSym : public SymbolRecord { … };
class HeapAllocationSiteSym : public SymbolRecord { … };
class FrameCookieSym : public SymbolRecord { … };
class UDTSym : public SymbolRecord { … };
class BuildInfoSym : public SymbolRecord { … };
class BPRelativeSym : public SymbolRecord { … };
class RegRelativeSym : public SymbolRecord { … };
class ConstantSym : public SymbolRecord { … };
class DataSym : public SymbolRecord { … };
class ThreadLocalDataSym : public SymbolRecord { … };
class UsingNamespaceSym : public SymbolRecord { … };
class AnnotationSym : public SymbolRecord { … };
Expected<CVSymbol> readSymbolFromStream(BinaryStreamRef Stream,
uint32_t Offset);
}
}
#endif