| //===- CVDebugRecord.h ------------------------------------------*- C++ -*-===// |
| // |
| // 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 |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_OBJECT_CVDEBUGRECORD_H |
| #define LLVM_OBJECT_CVDEBUGRECORD_H |
| |
| #include "llvm/Support/Endian.h" |
| |
| namespace llvm { |
| namespace OMF { |
| struct Signature { |
| enum ID : uint32_t { |
| PDB70 = 0x53445352, // RSDS |
| PDB20 = 0x3031424e, // NB10 |
| CV50 = 0x3131424e, // NB11 |
| CV41 = 0x3930424e, // NB09 |
| }; |
| |
| support::ulittle32_t CVSignature; |
| support::ulittle32_t Offset; |
| }; |
| } |
| |
| namespace codeview { |
| struct PDB70DebugInfo { |
| support::ulittle32_t CVSignature; |
| uint8_t Signature[16]; |
| support::ulittle32_t Age; |
| // char PDBFileName[]; |
| }; |
| |
| struct PDB20DebugInfo { |
| support::ulittle32_t CVSignature; |
| support::ulittle32_t Offset; |
| support::ulittle32_t Signature; |
| support::ulittle32_t Age; |
| // char PDBFileName[]; |
| }; |
| |
| union DebugInfo { |
| struct OMF::Signature Signature; |
| struct PDB20DebugInfo PDB20; |
| struct PDB70DebugInfo PDB70; |
| }; |
| } |
| } |
| |
| #endif |
| |