Add support for putting globals in a particular section
authorChris Lattner <sabre@nondot.org>
Sat, 12 Nov 2005 00:09:49 +0000 (00:09 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 12 Nov 2005 00:09:49 +0000 (00:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24309 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/GlobalValue.h

index a3b3cde85da3b340f03a22c89dec8d0a16dad991..ca189b2cbe166d5a5d3f1bf497ee9d089fdc7a53 100644 (file)
@@ -38,12 +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), Alignment(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.
@@ -55,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.