]> granicus.if.org Git - llvm/commitdiff
Bug fix: padding bytes within a structure should go after each field!
authorVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 25 May 2003 21:59:09 +0000 (21:59 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 25 May 2003 21:59:09 +0000 (21:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6333 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9AsmPrinter.cpp

index 523e21e16425b3fb3e2427ad2c4de62a75aa52c0..1509fdbb94ee22ad5f5ca351919b0041f54d32b7 100644 (file)
@@ -544,7 +544,7 @@ private:
   void printGlobalVariable      (const GlobalVariable *GV);
   void PrintZeroBytesToPad      (int numBytes);
   void printSingleConstantValue (const Constant* CV);
-  void printConstantValueOnly   (const Constant* CV, int numPadBytes = 0);
+  void printConstantValueOnly   (const Constant* CV, int numPadBytesAfter = 0);
   void printConstant            (const Constant* CV, string valID = "");
 
   static void FoldConstants     (const Module &M,
@@ -786,13 +786,10 @@ SparcModuleAsmPrinter::PrintZeroBytesToPad(int numBytes)
 // Uses printSingleConstantValue() to print each individual value.
 void
 SparcModuleAsmPrinter::printConstantValueOnly(const Constant* CV,
-                                              int numPadBytes /* = 0*/)
+                                              int numPadBytesAfter /* = 0*/)
 {
   const ConstantArray *CVA = dyn_cast<ConstantArray>(CV);
 
-  if (numPadBytes)
-    PrintZeroBytesToPad(numPadBytes);
-
   if (CVA && isStringCompatible(CVA))
     { // print the string alone and return
       toAsm << "\t" << ".ascii" << "\t" << getAsCString(CVA) << "\n";
@@ -829,6 +826,9 @@ SparcModuleAsmPrinter::printConstantValueOnly(const Constant* CV,
     }
   else
     printSingleConstantValue(CV);
+
+  if (numPadBytesAfter)
+    PrintZeroBytesToPad(numPadBytesAfter);
 }
 
 // Print a constant (which may be an aggregate) prefixed by all the