/* Prefetch into L1 cache for write. */
#define prefetchw(addr) __builtin_prefetch((addr), 1)
-/* Declare that pointers to the annotated type may alias other pointers. */
-#define _may_alias_attribute __attribute__((may_alias))
-
/* Hint that the annotated function is rarely called. */
#if GCC_PREREQ(4, 4) || __has_attribute(cold)
# define _cold_attribute __attribute__((cold))
static void
expand_SA(void *p, u32 n)
{
- typedef u32 _may_alias_attribute aliased_u32_t;
- typedef u64 _may_alias_attribute aliased_u64_t;
+ typedef u32 __attribute__((may_alias)) aliased_u32_t;
+ typedef u64 __attribute__((may_alias)) aliased_u64_t;
aliased_u32_t *SA = p;
aliased_u64_t *SA64 = p;
/* Now fill in chunk_offsets from the entries we have read in
* chunk_tab_data. We break aliasing rules here to avoid having
* to allocate yet another array. */
- typedef le64 _may_alias_attribute aliased_le64_t;
- typedef le32 _may_alias_attribute aliased_le32_t;
+ typedef le64 __attribute__((may_alias)) aliased_le64_t;
+ typedef le32 __attribute__((may_alias)) aliased_le32_t;
u64 * chunk_offsets_p = chunk_offsets;
if (alt_chunk_table) {
0 != (ctx->write_resource_flags &
WRITE_RESOURCE_FLAG_SOLID));
- typedef le64 _may_alias_attribute aliased_le64_t;
- typedef le32 _may_alias_attribute aliased_le32_t;
+ typedef le64 __attribute__((may_alias)) aliased_le64_t;
+ typedef le32 __attribute__((may_alias)) aliased_le32_t;
if (chunk_entry_size == 4) {
aliased_le32_t *entries = (aliased_le32_t*)ctx->chunk_csizes;