| //===-- 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 |