add a virtual dtor to MCTargetExpr, hopefully silencing some warnings.
[oota-llvm.git] / include / llvm / MC / MCSection.h
index 4d505028db3373159d5871c1d8b92ad7668a5888..ceb6d278c9c0bf4a3905450269f93c219be9670e 100644 (file)
@@ -20,7 +20,7 @@
 
 namespace llvm {
   class MCContext;
-  class TargetAsmInfo;
+  class MCAsmInfo;
   class raw_ostream;
   
   /// MCSection - Instances of this class represent a uniqued identifier for a
@@ -37,60 +37,10 @@ namespace llvm {
 
     SectionKind getKind() const { return Kind; }
     
-    virtual void PrintSwitchToSection(const TargetAsmInfo &TAI,
+    virtual void PrintSwitchToSection(const MCAsmInfo &MAI,
                                       raw_ostream &OS) const = 0;
   };
 
-  
-  class MCSectionELF : public MCSection {
-    std::string Name;
-    
-    /// IsDirective - This is true if the section name is a directive, not
-    /// something that should be printed with ".section".
-    ///
-    /// FIXME: This is a hack.  Switch to a semantic view of the section instead
-    /// of a syntactic one.
-    bool IsDirective;
-    
-    MCSectionELF(const StringRef &Name, bool IsDirective, SectionKind K,
-                 MCContext &Ctx);
-  public:
-    
-    static MCSectionELF *Create(const StringRef &Name, bool IsDirective, 
-                                SectionKind K, MCContext &Ctx);
-
-    const std::string &getName() const { return Name; }
-    bool isDirective() const { return IsDirective; }
-    
-    
-    virtual void PrintSwitchToSection(const TargetAsmInfo &TAI,
-                                      raw_ostream &OS) const;
-  };
-
-  class MCSectionMachO : public MCSection {
-    std::string Name;
-    
-    /// IsDirective - This is true if the section name is a directive, not
-    /// something that should be printed with ".section".
-    ///
-    /// FIXME: This is a hack.  Switch to a semantic view of the section instead
-    /// of a syntactic one.
-    bool IsDirective;
-    
-    MCSectionMachO(const StringRef &Name, bool IsDirective, SectionKind K,
-                   MCContext &Ctx);
-  public:
-    
-    static MCSectionMachO *Create(const StringRef &Name, bool IsDirective, 
-                                  SectionKind K, MCContext &Ctx);
-
-    const std::string &getName() const { return Name; }
-    bool isDirective() const { return IsDirective; }
-    
-    virtual void PrintSwitchToSection(const TargetAsmInfo &TAI,
-                                      raw_ostream &OS) const;
-  };
-  
   class MCSectionCOFF : public MCSection {
     std::string Name;
     
@@ -101,17 +51,18 @@ namespace llvm {
     /// of a syntactic one.
     bool IsDirective;
     
-    MCSectionCOFF(const StringRef &Name, bool IsDirective, SectionKind K,
-                  MCContext &Ctx);
+    MCSectionCOFF(StringRef name, bool isDirective, SectionKind K)
+      : MCSection(K), Name(name), IsDirective(isDirective) {
+    }
   public:
     
-    static MCSectionCOFF *Create(const StringRef &Name, bool IsDirective, 
-                                   SectionKind K, MCContext &Ctx);
+    static MCSectionCOFF *Create(StringRef Name, bool IsDirective, 
+                                 SectionKind K, MCContext &Ctx);
 
     const std::string &getName() const { return Name; }
     bool isDirective() const { return IsDirective; }
     
-    virtual void PrintSwitchToSection(const TargetAsmInfo &TAI,
+    virtual void PrintSwitchToSection(const MCAsmInfo &MAI,
                                       raw_ostream &OS) const;
   };