# HG changeset patch # User Nathan Froyd Bug 1163171 - part 5 - remove arm-specific hacks in typed array implementation; r=lth clang does not have the specific problem that led to this hack in the first place, so we can remove the hack. (The hack also causes issues with clang; it complains that you can't pass `volatile T*` into the intrinsics that we're using for atomic operations.) diff --git a/js/src/vm/TypedArrayObject-inl.h b/js/src/vm/TypedArrayObject-inl.h index e5b0253..9d9c0d5 100644 --- a/js/src/vm/TypedArrayObject-inl.h +++ b/js/src/vm/TypedArrayObject-inl.h @@ -258,17 +258,17 @@ class ElementSpecific uint32_t count = source->length(); if (source->type() == target->type()) { Ops::podCopy(dest, source->viewDataEither().template cast(), count); return true; } // Inhibit unaligned accesses on ARM (bug 1097253, a compiler bug). -#ifdef __arm__ +#if defined(__arm__) && defined(__GNUC__) && !defined(__clang__) # define JS_VOLATILE_ARM volatile #else # define JS_VOLATILE_ARM #endif SharedMem data = Ops::extract(source); switch (source->type()) { case Scalar::Int8: {