]> granicus.if.org Git - clang/commitdiff
Tweak CreateMetadataVar, take the exact alignment instead of relying
authorDaniel Dunbar <daniel@zuster.org>
Mon, 9 Mar 2009 20:50:13 +0000 (20:50 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 9 Mar 2009 20:50:13 +0000 (20:50 +0000)
on LLVM TargetData.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66455 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGObjCMac.cpp

index 5ae32e8737d271b9704e900b33ab80fe37ada9db..d1d4308378011fade3786771993b06c007c53932 100644 (file)
@@ -436,11 +436,19 @@ protected:
   /// This is a convenience wrapper which not only creates the
   /// variable, but also sets the section and alignment and adds the
   /// global to the UsedGlobals list.
+  ///
+  /// \param Name - The variable name.
+  /// \param Init - The variable initializer; this is also used to
+  /// define the type of the variable.
+  /// \param Section - The section the variable should go into, or 0.
+  /// \param Align - The alignment for the variable, or 0.
+  /// \param AddToUsed - Whether the variable should be added to
+  /// llvm.
   llvm::GlobalVariable *CreateMetadataVar(const std::string &Name,
                                           llvm::Constant *Init,
                                           const char *Section,
-                                          bool SetAlignment,
-                                          bool IsUsed);
+                                          unsigned Align,
+                                          bool AddToUsed);
 
 public:
   CGObjCCommonMac(CodeGen::CodeGenModule &cgm) : CGM(cgm)
@@ -1857,8 +1865,8 @@ llvm::GlobalVariable *
 CGObjCCommonMac::CreateMetadataVar(const std::string &Name,
                                    llvm::Constant *Init,
                                    const char *Section,
-                                   bool SetAlignment,
-                                   bool IsUsed) {
+                                   unsigned Align,
+                                   bool AddToUsed) {
   const llvm::Type *Ty = Init->getType();
   llvm::GlobalVariable *GV = 
     new llvm::GlobalVariable(Ty, false,
@@ -1868,9 +1876,9 @@ CGObjCCommonMac::CreateMetadataVar(const std::string &Name,
                              &CGM.getModule());
   if (Section)
     GV->setSection(Section);
-  if (SetAlignment)
-    GV->setAlignment(CGM.getTargetData().getPrefTypeAlignment(Ty));
-  if (IsUsed)
+  if (Align)
+    GV->setAlignment(Align);
+  if (AddToUsed)
     UsedGlobals.push_back(GV);
   return GV;
 }