sink the 'name' and 'isdirective' state out of MCSection into its derived classes.
[oota-llvm.git] / lib / Target / PIC16 / PIC16Section.h
1 //===- PIC16Section.h - PIC16-specific section representation ---*- 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 declares the MCSection class.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef LLVM_PIC16SECTION_H
15 #define LLVM_PIC16SECTION_H
16
17 #include "llvm/MC/MCSection.h"
18
19 namespace llvm {
20
21   class MCSectionPIC16 : public MCSection {
22     std::string Name;
23     
24     MCSectionPIC16(const StringRef &name, SectionKind K,
25                    MCContext &Ctx);
26   public:
27     
28     const std::string &getName() const { return Name; }
29     
30     static MCSectionPIC16 *Create(const StringRef &Name, 
31                                   SectionKind K, MCContext &Ctx);
32     
33     virtual void PrintSwitchToSection(const TargetAsmInfo &TAI,
34                                       raw_ostream &OS) const;
35   };
36
37 } // end namespace llvm
38
39 #endif