--- subversion/libsvn_delta/text_delta.c~ 2013-04-12 17:14:37.000000000 +0930 +++ subversion/libsvn_delta/text_delta.c 2014-08-11 16:56:33.540477151 +0930 @@ -669,14 +669,15 @@ patterning_copy(char *target, const char #if SVN_UNALIGNED_ACCESS_IS_OK - if (end + sizeof(apr_uint32_t) <= target) + typedef struct _unaligned { char u[4]; } unaligned32; + if (source + sizeof(unaligned32) <= target) { /* Source and target are at least 4 bytes apart, so we can copy in * 4-byte chunks. */ - for (; source + sizeof(apr_uint32_t) <= end; - source += sizeof(apr_uint32_t), - target += sizeof(apr_uint32_t)) - *(apr_uint32_t *)(target) = *(apr_uint32_t *)(source); + for (; source + sizeof(unaligned32) <= end; + source += sizeof(unaligned32), + target += sizeof(unaligned32)) + *(unaligned32 *)target = *(unaligned32 *)source; } #endif