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.