http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-02-03 
09:07:12 UTC ---
(In reply to comment #8)
> (In reply to comment #7)
> > An updated patch is at
> > 
> > http://gcc.gnu.org/ml/gcc-patches/2010-03/msg00937.html
> > 
> 
> Patch is fine. It is absolutely necessary to support gcc's intrinsic headers
> for mingw. The fixinclude approach is one way to solve it and I am fine by it.
> For mingw-w64 we used the #pragma push/pop_macro feature to make sure we
> declare function without getting problems by this define in ia32intrin.h.
> 
> Kai

Why can't you just
_CRTIMP unsigned int __cdecl __MINGW_NOTHROW (_rotl)(unsigned int, int)
__MINGW_ATTRIB_CONST;
?
_rotl etc. from ia32intrin.h is a function-like macro, so the above prevents
the expansion.
Is this still a problem on *mingw and *mingw64?  I mean, if x86intrin.h can't
be included, it sounds like a serious problem for those that use this arch, and
it is open for more than a year.
I guess H.J.'s patch is just too dangerous, it assumes that _rotl is the first
declaration and _lrotr is the last one, I guess much better would be to ifdef
out
each declaration separately, then there wouldn't be issues with unmatched
#if/#endif.

Reply via email to