While building Framewave with visual studio 2008 I encountered errors of the form
'_mm_max_epu32' : ambiguous call to overloaded function
The function _mm_max_epu32 is a user defined function used in "Signal Statistics". With some cursory investigation, the root cause of the error was found. The function _mm_max_epu32 is added as an intrinsic in VS 2008 to support SSE 4.1 instructions. Now the problem is we do not want to call the SSE 4.1 intrinsics but rather call the user defined functions in Framewave.
One solution is to rename the conflicting user defined functions and all the references to these functions. This might require significant change to the source code depending on the extent to which these functions are used.
In order to avoid manual renaming of the code, is there a way to ignore the SSE 4.1 intrinsics and pick the user defined ones?
Note: SSE 4.1 is used by including <smmintrin.h> This header file seems to be indirectly included in Framewave probably through <intrin.h>
Ideally _mm_max_epu32 needs to go into Carbide. It's a leftover from the SSEIntrinsic days.
The conflicting functions have been renamed and the code is checked in to the repository. The Framewave now builds smoothly with VS 2008.
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.