MCSection.h revision a0faf7ae555eacf75f5a482968b27e447d71c99f
1ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar//===- MCSection.h - Machine Code Sections ----------------------*- C++ -*-===//
2ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar//
3ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar//                     The LLVM Compiler Infrastructure
4ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar//
5ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar// This file is distributed under the University of Illinois Open Source
6ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar// License. See LICENSE.TXT for details.
7ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar//
8ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar//===----------------------------------------------------------------------===//
9a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner//
10a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner// This file declares the MCSection class.
11a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner//
12a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner//===----------------------------------------------------------------------===//
13ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar
14ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar#ifndef LLVM_MC_MCSECTION_H
15ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar#define LLVM_MC_MCSECTION_H
16ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar
17ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar#include <string>
18ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar
19ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbarnamespace llvm {
20ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar
21a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner  /// MCSection - Instances of this class represent a uniqued identifier for a
22a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner  /// section in the current translation unit.  The MCContext class uniques and
23a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner  /// creates these.
24ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar  class MCSection {
25ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar    std::string Name;
26a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner  private:
27a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner    friend class MCContext;
28ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar    MCSection(const char *_Name) : Name(_Name) {}
29a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner
30a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner    MCSection(const MCSection&);      // DO NOT IMPLEMENT
31a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner    void operator=(const MCSection&); // DO NOT IMPLEMENT
32a0faf7ae555eacf75f5a482968b27e447d71c99fChris Lattner  public:
33a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar
34a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar    const std::string &getName() const { return Name; }
35ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar  };
36ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar
37ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar} // end namespace llvm
38ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar
39ecc63f8687c4eb746b69336316685fe9b224adfbDaniel Dunbar#endif
40