Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===- PDBStringTable.h - PDB String Table -----------------------*- 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_DEBUGINFO_PDB_NATIVE_PDBSTRINGTABLE_H
10
#define LLVM_DEBUGINFO_PDB_NATIVE_PDBSTRINGTABLE_H
11
 
12
#include "llvm/ADT/StringRef.h"
13
#include "llvm/DebugInfo/CodeView/DebugStringTableSubsection.h"
14
#include "llvm/Support/BinaryStreamArray.h"
15
#include "llvm/Support/Endian.h"
16
#include "llvm/Support/Error.h"
17
#include <cstdint>
18
 
19
namespace llvm {
20
class BinaryStreamReader;
21
 
22
namespace pdb {
23
 
24
struct PDBStringTableHeader;
25
 
26
class PDBStringTable {
27
public:
28
  Error reload(BinaryStreamReader &Reader);
29
 
30
  uint32_t getByteSize() const;
31
  uint32_t getNameCount() const;
32
  uint32_t getHashVersion() const;
33
  uint32_t getSignature() const;
34
 
35
  Expected<StringRef> getStringForID(uint32_t ID) const;
36
  Expected<uint32_t> getIDForString(StringRef Str) const;
37
 
38
  FixedStreamArray<support::ulittle32_t> name_ids() const;
39
 
40
  const codeview::DebugStringTableSubsectionRef &getStringTable() const;
41
 
42
private:
43
  Error readHeader(BinaryStreamReader &Reader);
44
  Error readStrings(BinaryStreamReader &Reader);
45
  Error readHashTable(BinaryStreamReader &Reader);
46
  Error readEpilogue(BinaryStreamReader &Reader);
47
 
48
  const PDBStringTableHeader *Header = nullptr;
49
  codeview::DebugStringTableSubsectionRef Strings;
50
  FixedStreamArray<support::ulittle32_t> IDs;
51
  uint32_t NameCount = 0;
52
};
53
 
54
} // end namespace pdb
55
} // end namespace llvm
56
 
57
#endif // LLVM_DEBUGINFO_PDB_NATIVE_PDBSTRINGTABLE_H