~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to include/llvm/CodeGen/DwarfStringPoolEntry.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//===- llvm/CodeGen/DwarfStringPoolEntry.h - String pool entry --*- 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_CODEGEN_DWARFSTRINGPOOLENTRY_H
 
11
#define LLVM_CODEGEN_DWARFSTRINGPOOLENTRY_H
 
12
 
 
13
#include "llvm/ADT/StringMap.h"
 
14
 
 
15
namespace llvm {
 
16
 
 
17
class MCSymbol;
 
18
 
 
19
/// Data for a string pool entry.
 
20
struct DwarfStringPoolEntry {
 
21
  MCSymbol *Symbol;
 
22
  unsigned Offset;
 
23
  unsigned Index;
 
24
};
 
25
 
 
26
/// String pool entry reference.
 
27
struct DwarfStringPoolEntryRef {
 
28
  const StringMapEntry<DwarfStringPoolEntry> *I = nullptr;
 
29
 
 
30
public:
 
31
  DwarfStringPoolEntryRef() = default;
 
32
  explicit DwarfStringPoolEntryRef(
 
33
      const StringMapEntry<DwarfStringPoolEntry> &I)
 
34
      : I(&I) {}
 
35
 
 
36
  explicit operator bool() const { return I; }
 
37
  MCSymbol *getSymbol() const {
 
38
    assert(I->second.Symbol && "No symbol available!");
 
39
    return I->second.Symbol;
 
40
  }
 
41
  unsigned getOffset() const { return I->second.Offset; }
 
42
  unsigned getIndex() const { return I->second.Index; }
 
43
  StringRef getString() const { return I->first(); }
 
44
 
 
45
  bool operator==(const DwarfStringPoolEntryRef &X) const { return I == X.I; }
 
46
  bool operator!=(const DwarfStringPoolEntryRef &X) const { return I != X.I; }
 
47
};
 
48
 
 
49
} // end namespace llvm
 
50
 
 
51
#endif