Coverage Report

Created: 2018-11-12 17:33

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/MC/MCLabel.h
Line
Count
Source (jump to first uncovered line)
1
//===- MCLabel.h - Machine Code Directional Local Labels --------*- 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
// This file contains the declaration of the MCLabel class.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_MC_MCLABEL_H
15
#define LLVM_MC_MCLABEL_H
16
17
namespace llvm {
18
19
class raw_ostream;
20
21
/// Instances of this class represent a label name in the MC file,
22
/// and MCLabel are created and uniqued by the MCContext class.  MCLabel
23
/// should only be constructed for valid instances in the object file.
24
class MCLabel {
25
  // The instance number of this Directional Local Label.
26
  unsigned Instance;
27
28
private: // MCContext creates and uniques these.
29
  friend class MCContext;
30
31
248
  MCLabel(unsigned instance) : Instance(instance) {}
32
33
public:
34
  MCLabel(const MCLabel &) = delete;
35
  MCLabel &operator=(const MCLabel &) = delete;
36
37
  /// Get the current instance of this Directional Local Label.
38
392
  unsigned getInstance() const { return Instance; }
39
40
  /// Increment the current instance of this Directional Local Label.
41
327
  unsigned incInstance() { return ++Instance; }
42
43
  /// Print the value to the stream \p OS.
44
  void print(raw_ostream &OS) const;
45
46
  /// Print the value to stderr.
47
  void dump() const;
48
};
49
50
0
inline raw_ostream &operator<<(raw_ostream &OS, const MCLabel &Label) {
51
0
  Label.print(OS);
52
0
  return OS;
53
0
}
54
55
} // end namespace llvm
56
57
#endif // LLVM_MC_MCLABEL_H