LCOV - code coverage report
Current view: top level - include/llvm/MC - MCLabel.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 3 3 100.0 %
Date: 2017-09-14 15:23:50 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       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             : /// \brief 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             :   // \brief 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         125 :   MCLabel(unsigned instance) : Instance(instance) {}
      32             : 
      33             : public:
      34             :   MCLabel(const MCLabel &) = delete;
      35             :   MCLabel &operator=(const MCLabel &) = delete;
      36             : 
      37             :   /// \brief Get the current instance of this Directional Local Label.
      38         174 :   unsigned getInstance() const { return Instance; }
      39             : 
      40             :   /// \brief Increment the current instance of this Directional Local Label.
      41         161 :   unsigned incInstance() { return ++Instance; }
      42             : 
      43             :   /// \brief Print the value to the stream \p OS.
      44             :   void print(raw_ostream &OS) const;
      45             : 
      46             :   /// \brief Print the value to stderr.
      47             :   void dump() const;
      48             : };
      49             : 
      50             : inline raw_ostream &operator<<(raw_ostream &OS, const MCLabel &Label) {
      51             :   Label.print(OS);
      52             :   return OS;
      53             : }
      54             : 
      55             : } // end namespace llvm
      56             : 
      57             : #endif // LLVM_MC_MCLABEL_H

Generated by: LCOV version 1.13