Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===- CVDebugRecord.h ------------------------------------------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8.  
  9. #ifndef LLVM_OBJECT_CVDEBUGRECORD_H
  10. #define LLVM_OBJECT_CVDEBUGRECORD_H
  11.  
  12. #include "llvm/Support/Endian.h"
  13.  
  14. namespace llvm {
  15. namespace OMF {
  16. struct Signature {
  17.   enum ID : uint32_t {
  18.     PDB70 = 0x53445352, // RSDS
  19.     PDB20 = 0x3031424e, // NB10
  20.     CV50 = 0x3131424e,  // NB11
  21.     CV41 = 0x3930424e,  // NB09
  22.   };
  23.  
  24.   support::ulittle32_t CVSignature;
  25.   support::ulittle32_t Offset;
  26. };
  27. }
  28.  
  29. namespace codeview {
  30. struct PDB70DebugInfo {
  31.   support::ulittle32_t CVSignature;
  32.   uint8_t Signature[16];
  33.   support::ulittle32_t Age;
  34.   // char PDBFileName[];
  35. };
  36.  
  37. struct PDB20DebugInfo {
  38.   support::ulittle32_t CVSignature;
  39.   support::ulittle32_t Offset;
  40.   support::ulittle32_t Signature;
  41.   support::ulittle32_t Age;
  42.   // char PDBFileName[];
  43. };
  44.  
  45. union DebugInfo {
  46.   struct OMF::Signature Signature;
  47.   struct PDB20DebugInfo PDB20;
  48.   struct PDB70DebugInfo PDB70;
  49. };
  50. }
  51. }
  52.  
  53. #endif
  54.  
  55.