PKGBUILDs/community/seamonkey/bug-1163171.patch
2021-10-20 02:37:50 +00:00

35 lines
1.2 KiB
Diff

# HG changeset patch
# User Nathan Froyd <froydnj@gmail.com>
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<T*>(), 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<void*> data = Ops::extract(source);
switch (source->type()) {
case Scalar::Int8: {