GCC 5.4.0 on Ubuntu 16.04
This is the (cleaned) error message:
/juce_dsp/containers/juce_SIMDRegister.h: In instantiation of ‘struct juce::dsp::SIMDRegister<long long int>’:
hi_streaming/hi_streaming/MonolithAudioFormat.h:402:77: recursively required by substitution of ‘template<class Type> juce::dsp::SIMDRegister<Type> juce::jmax(juce::dsp::SIMDRegister<Type>, juce::dsp::SIMDRegister<Type>) [with Type = long long int]’
juce_dsp/containers/juce_SIMDRegister.h:84:43: error: invalid use of incomplete type ‘struct juce::dsp::SIMDNativeOps<long long int>’ typedef typename NativeOps::vSIMDType vSIMDType;
^
The code in MonolithAudioFormat.h uses something like jmax<int64>(int64 v1, int64 v2) which seems to be expanded to a SIMD version of the jmax macro defined in the location shown above (maybe a vector of 4 shorts?). If I change the line to:
jmax<int>((int)int64Value1, (int)int64Value2);
so that the template argument is int, it compiles.
I also got reports of users not being able to compile this on macOS (so most probably clang), however my XCode didn’t complain.
