unaligned: use may_alias attribute
authorEric Biggers <ebiggers3@gmail.com>
Sun, 16 Jul 2017 06:26:33 +0000 (23:26 -0700)
committerEric Biggers <ebiggers3@gmail.com>
Sun, 16 Jul 2017 06:26:33 +0000 (23:26 -0700)
commite1e717054ca1ba93bfcafbe5f0ec7de7483c1853
tree8828c9792437be8d280b75fec29595db332e3059
parentf572d61bbd0e33de6b8c540f3b5e89f673cbbfbe
unaligned: use may_alias attribute

gcc7 miscompiles the "undo" mode of translate_if_needed() in
lzms_common.c because the get_unaligned_le16() was incorrectly being
moved before the put_unaligned_le32().  Fix it by marking the special
"unaligned" structs with the may_alias attribute.
include/wimlib/unaligned.h