https://bugs.openldap.org/show_bug.cgi?id=9916
--- Comment #12 from glaubitz@physik.fu-berlin.de --- (In reply to Howard Chu from comment #10)
This is a gcc optimizer bug. Both mp_upper and mp_lower are type indx_t, which is a 2-byte integer. The compiler has OR'd the two statements into a single value, and tried to use a 4-byte store instruction to store both variables at once, but the fields are only 2-byte aligned.
Interesting. So I guess we have something to report to the GCC people.