diff --git a/plugins/GSdx/GSVector.h b/plugins/GSdx/GSVector.h index a9d21c27c..c68478dcf 100644 --- a/plugins/GSdx/GSVector.h +++ b/plugins/GSdx/GSVector.h @@ -2970,6 +2970,34 @@ public: } +#ifdef __linux__ +#if 0 + // Debug build error, _mm_extract_ps is actually a macro that use an anonymous union + // that contains i. I decide to rename the template on linux but it makes windows unhappy + // Hence the nice ifdef + // + // Code extract: + // union { int i; float f; } __tmp; + +GSVector.h:2977:40: error: declaration of ‘int GSVector4::extract32() const::::i’ + return _mm_extract_ps(m, i); +GSVector.h:2973:15: error: shadows template parm ‘int i’ + template __forceinline int extract32() const +#endif + + template __forceinline int extract32() const + { + #if _M_SSE >= 0x401 + + return _mm_extract_ps(m, index); + + #else + + return i32[index]; + + #endif + } +#else template __forceinline int extract32() const { #if _M_SSE >= 0x401 @@ -2982,6 +3010,7 @@ public: #endif } +#endif __forceinline static GSVector4 zero() {