about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--locale/weight.h8
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b5e96efc2d..96643d61ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,8 @@
 	characters.
 	(collate_output): Correct various problems with alignment in the
 	output file.
+	* locale/weight.h: Adjust for last change in ld-collate.c of adding
+	alignment padding.
 
 	* stdlib/strfmon.c: Don't report an error if final NUL is at the
 	end of the buffer.  Set errno correctly if floating-point number
diff --git a/locale/weight.h b/locale/weight.h
index cc634c253b..6151faacea 100644
--- a/locale/weight.h
+++ b/locale/weight.h
@@ -68,6 +68,8 @@ findidx (const unsigned char **cpp)
 
 	  /* Up to the next entry.  */
 	  cp += nhere;
+	  if ((1 + nhere) % __alignof__ (int32_t) != 0)
+	    cp += __alignof__ (int32_t) - (1 + nhere) % __alignof__ (int32_t);
 	}
       else
 	{
@@ -86,6 +88,9 @@ findidx (const unsigned char **cpp)
 		{
 		  /* Cannot be in this range.  */
 		  cp += 2 * nhere;
+		  if ((1 + 2 * nhere) % __alignof__ (int32_t) != 0)
+		    cp += (__alignof__ (int32_t)
+			   - (1 + 2 * nhere) % __alignof__ (int32_t));
 		  continue;
 		}
 
@@ -98,6 +103,9 @@ findidx (const unsigned char **cpp)
 		{
 		  /* Cannot be in this range.  */
 		  cp += 2 * nhere;
+		  if ((1 + 2 * nhere) % __alignof__ (int32_t) != 0)
+		    cp += (__alignof__ (int32_t)
+			   - (1 + 2 * nhere) % __alignof__ (int32_t));
 		  continue;
 		}