diff --git a/arbor/include/arbor/simd/avx.hpp b/arbor/include/arbor/simd/avx.hpp
index 67fb4f4a6f9de9c737029b7830976eaf7734e763..2aeaed9f19e534b16ab58338270366169ad72274 100644
--- a/arbor/include/arbor/simd/avx.hpp
+++ b/arbor/include/arbor/simd/avx.hpp
@@ -332,11 +332,11 @@ struct avx_double4: implbase<avx_double4> {
         return _mm256_castsi256_pd(combine_m128i(bu, bl));
     }
 
-    static void mask_set_element(__m256d& u, int i, bool b) {
-        char data[256];
-        _mm256_storeu_pd((double*)data, u);
-        ((int64*)data)[i] = -(int64)b;
-        u = _mm256_loadu_pd((double*)data);
+    static void mask_set_element(__m256d& u, const int i, bool b) {
+        int64 data[4];
+        _mm256_storeu_si256((__m256i*)data, _mm256_castpd_si256(u));
+        data[i] = -(int64)b;
+        u = _mm256_castsi256_pd(_mm256_loadu_si256((__m256i*)data));
     }
 
     static void mask_copy_to(const __m256d& m, bool* y) {
diff --git a/arbor/memory/range_limits.hpp b/arbor/memory/range_limits.hpp
index c1284a8b533813cc72e5d49b38b1b2a8e0efb21b..273e2f8091f3cba0122087d6f97c2705e71a829b 100644
--- a/arbor/memory/range_limits.hpp
+++ b/arbor/memory/range_limits.hpp
@@ -5,11 +5,5 @@ namespace memory {
 // tag for final element in a range
 struct end_type {};
 
-namespace{
-    // attach the unused attribute so that -Wall won't generate warnings when
-    // translation units that include this file don't use end
-    end_type end [[gnu::unused]];
-}
-
 } // namespace memory
 } // namespace arb
diff --git a/test/unit/test_probe.cpp b/test/unit/test_probe.cpp
index 6ea8ad808288fa3289b244f4372ce45ab51cdf6c..13fc98899933c3a5dc77719bfc25c8925002d627 100644
--- a/test/unit/test_probe.cpp
+++ b/test/unit/test_probe.cpp
@@ -1164,7 +1164,7 @@ void run_stimulus_probe_test(const context& ctx) {
                 cable_probe_stimulus_current_cell{}, {stim_until/2, 2*stim_until}).at(0);
 
         ASSERT_EQ(3u, traces[i].meta.size());
-        for (unsigned cv: {0u, 1u, 2u}) {
+        for ([[maybe_unused]] unsigned cv: {0u, 1u, 2u}) {
             ASSERT_EQ(2u, traces[i].size());
         }
     }