aboutsummaryrefslogtreecommitdiff
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 b5e96ef..96643d6 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 cc634c2..6151faa 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;
}