add a couple of enum values
[oota-llvm.git] / include / llvm / GlobalValue.h
index a6db31dc9b1e61032b11183387fbd80755315c45..ca189b2cbe166d5a5d3f1bf497ee9d089fdc7a53 100644 (file)
@@ -38,11 +38,13 @@ public:
 protected:
   GlobalValue(const Type *Ty, ValueTy vty, Use *Ops, unsigned NumOps,
               LinkageTypes linkage, const std::string &name = "")
-    : Constant(Ty, vty, Ops, NumOps, name), Linkage(linkage), Parent(0) { }
+    : Constant(Ty, vty, Ops, NumOps, name), 
+      Parent(0), Linkage(linkage), Alignment(0) { }
 
-  LinkageTypes Linkage;   // The linkage of this global
   Module *Parent;
-  unsigned Alignment;
+  LinkageTypes Linkage;   // The linkage of this global
+  unsigned Alignment;     // Alignment of this symbol, must be power of two
+  std::string Section;    // Section to emit this into, empty mean default
 public:
   ~GlobalValue() {
     removeDeadConstantUsers();   // remove any dead constants using this.
@@ -54,6 +56,10 @@ public:
     Alignment = Align;
   }
   
+  bool hasSection() const { return !Section.empty(); }
+  const std::string &getSection() const { return Section; }
+  void setSection(const std::string &S) { Section = S; }
+  
   /// If the usage is empty (except transitively dead constants), then this
   /// global value can can be safely deleted since the destructor will
   /// delete the dead constants as well.