diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | locale/weight.h | 8 |
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; } |