]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/include/llvm/Object/CVDebugRecord.h
Merge clang 7.0.1 and several follow-up changes
[FreeBSD/FreeBSD.git] / contrib / llvm / include / llvm / Object / CVDebugRecord.h
1 //===- CVDebugRecord.h ------------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LLVM_OBJECT_CVDEBUGRECORD_H
11 #define LLVM_OBJECT_CVDEBUGRECORD_H
12
13 #include "llvm/Support/Endian.h"
14
15 namespace llvm {
16 namespace OMF {
17 struct Signature {
18   enum ID : uint32_t {
19     PDB70 = 0x53445352, // RSDS
20     PDB20 = 0x3031424e, // NB10
21     CV50 = 0x3131424e,  // NB11
22     CV41 = 0x3930424e,  // NB09
23   };
24
25   support::ulittle32_t CVSignature;
26   support::ulittle32_t Offset;
27 };
28 }
29
30 namespace codeview {
31 struct PDB70DebugInfo {
32   support::ulittle32_t CVSignature;
33   uint8_t Signature[16];
34   support::ulittle32_t Age;
35   // char PDBFileName[];
36 };
37
38 struct PDB20DebugInfo {
39   support::ulittle32_t CVSignature;
40   support::ulittle32_t Offset;
41   support::ulittle32_t Signature;
42   support::ulittle32_t Age;
43   // char PDBFileName[];
44 };
45
46 union DebugInfo {
47   struct OMF::Signature Signature;
48   struct PDB20DebugInfo PDB20;
49   struct PDB70DebugInfo PDB70;
50 };
51 }
52 }
53
54 #endif
55