diff options
Diffstat (limited to 'contrib/llvm/tools/llvm-readobj/CodeView.h')
-rw-r--r-- | contrib/llvm/tools/llvm-readobj/CodeView.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/contrib/llvm/tools/llvm-readobj/CodeView.h b/contrib/llvm/tools/llvm-readobj/CodeView.h new file mode 100644 index 0000000..cf71396 --- /dev/null +++ b/contrib/llvm/tools/llvm-readobj/CodeView.h @@ -0,0 +1,54 @@ +//===-- CodeView.h - On-disk record types for CodeView ----------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// +/// \file +/// \brief This file provides data structures useful for consuming on-disk +/// CodeView. It is based on information published by Microsoft at +/// https://github.com/Microsoft/microsoft-pdb/. +/// +//===----------------------------------------------------------------------===// + +// FIXME: Find a home for this in include/llvm/DebugInfo/CodeView/. + +#ifndef LLVM_READOBJ_CODEVIEW_H +#define LLVM_READOBJ_CODEVIEW_H + +#include "llvm/DebugInfo/CodeView/CodeView.h" +#include "llvm/DebugInfo/CodeView/TypeIndex.h" +#include "llvm/Support/Endian.h" + +namespace llvm { +namespace codeview { + +using llvm::support::ulittle16_t; +using llvm::support::ulittle32_t; + +/// Data in the the SUBSEC_FRAMEDATA subection. +struct FrameData { + ulittle32_t RvaStart; + ulittle32_t CodeSize; + ulittle32_t LocalSize; + ulittle32_t ParamsSize; + ulittle32_t MaxStackSize; + ulittle32_t FrameFunc; + ulittle16_t PrologSize; + ulittle16_t SavedRegsSize; + ulittle32_t Flags; + enum : uint32_t { + HasSEH = 1 << 0, + HasEH = 1 << 1, + IsFunctionStart = 1 << 2, + }; +}; + + +} // namespace codeview +} // namespace llvm + +#endif // LLVM_READOBJ_CODEVIEW_H |