From ca16bf44b86cdfcd167bf557fd68a6d6727ed9fe Mon Sep 17 00:00:00 2001 From: ed Date: Thu, 7 Oct 2021 12:32:54 +0100 Subject: [PATCH] Add comment above AppleClang workaround in FloatVectorOperations::setFpStatusRegister() --- .../juce_audio_basics/buffers/juce_FloatVectorOperations.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp b/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp index 8e04b7a017..c39b52bd56 100644 --- a/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp +++ b/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp @@ -1051,6 +1051,8 @@ intptr_t JUCE_CALLTYPE FloatVectorOperations::getFpStatusRegister() noexcept void JUCE_CALLTYPE FloatVectorOperations::setFpStatusRegister (intptr_t fpsr) noexcept { #if JUCE_INTEL && JUCE_USE_SSE_INTRINSICS + // the volatile keyword here is needed to workaround a bug in AppleClang 13.0 + // which aggressively optimises away the variable otherwise volatile auto fpsr_w = static_cast (fpsr); _mm_setcsr (fpsr_w); #elif defined (__arm64__) || defined (__aarch64__) || JUCE_USE_ARM_NEON