https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76731
--- Comment #4 from Wenzel Jakob <wen...@mitsuba-renderer.org> --- Hmm, it looks like this is still an issue. Recompiling my codebase with the latest trunk version of gcc still produces many errors caused by this, e.g. include/simdarray/array_avx512.h:1059:53: error: invalid conversion from ‘simd::ArrayOperations<unsigned int, 16ul, false, (simd::RoundingMode)4, simd::Array<unsigned int, 16ul, false, (simd::RoundingMode)4> >::Scalar* {aka unsigned int*}’ to ‘const int*’ [-fpermissive] __m512i values = _mm512_mask_i32gather_epi32( ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ _mm512_undefined_epi32(), mask.k, index.m, f, sizeof(Scalar)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.0.0/include/immintrin.h:45:0, from include/simdarray/array.h:33, from tests/histogram.cpp:2: /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.0.0/include/avx512fintrin.h:9316:1: note: initializing argument 4 of ‘__m512i _mm512_mask_i32gather_epi32(__m512i, __mmask16, __m512i, const int*, int)’ _mm512_mask_i32gather_epi32 (__m512i __v1_old, __mmask16 __mask, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/simdarray/array.h:73:0, from tests/histogram.cpp:2: include/simdarray/array_avx512.h:1068:22: error: use of ‘main(int, char**)::<lambda(auto:1)> [with auto:1 = simd::Array<unsigned int, 16ul, false, (simd::RoundingMode)4>]’ before deduction of ‘auto’ values = func(Derived(values)).m; etc...