RFC: PR target/40722: [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
Richard Guenther
richard.guenther@gmail.com
Sun Mar 21 06:22:00 GMT 2010
On Sat, Mar 20, 2010 at 10:37 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Sat, Mar 20, 2010 at 10:40 AM, Richard Guenther
> <richard.guenther@gmail.com> wrote:
>> On Sat, Mar 20, 2010 at 7:08 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>> On Sat, Mar 20, 2010 at 10:59:35AM -0700, H.J. Lu wrote:
>>>> Hi,
>>>>
>>>> stdlib.h on mingw defines some new gcc 4.5 intrinsics as normal functions.
>>>> We can either disable gcc intrinsics on mingw or fix stdlib.h on mingw.
>>>> But fixincludes isn't run on mingw. Here is a hack to fix stdlib.h
>>>> mingw.
>>>>
>>>>
>>>> H.J.
>>>> ---
>>>> 2010-03-20 H.J. Lu <hongjiu.lu@intel.com>
>>>>
>>>> PR target/40722
>>>> * mkfixinc.sh: Fix stdlib.h for mingw.
>>>>
>>>
>>>
>>> Of course, we need to include <x86intrin.h> for gcc 4.5 and above.
>>> Otherwise, those functions won't be available in <stdlib.h>.
>>
>> Hm. It makes more sense to disable gcc intrinsics, otherwise you'd
>> get different behavior when compiling with different GCC versions.
>
> I am not familiar with mingw. We should support
>
> --
> #include <x86intrin.h>
>
> int
> foo (unsigned int x, int y)
> {
> return _rotl (x, y);
> }
I don't think we need to support this one on mingw. Well, _rotl was a bad
identifier to use from x86intrin.h anyway IMHO
> ---
>
> --
> #include <x86intrin.h>
> #include <stdlib.h>
>
> int
> foo (unsigned int x, int y)
> {
> return _rotl (x, y);
> }
> --
>
> --
> #include <stdlib.h>
> #include <x86intrin.h>
>
> int
> foo (unsigned int x, int y)
> {
> return _rotl (x, y);
> }
> --
>
> --
> H.J.
>
More information about the Gcc-patches
mailing list