Hmm, where is the corresponding pop_macro pragma?

Regards,
Kai

2017-05-11 14:09 GMT+02:00 Martell Malone <[email protected]>:
>>
>> While it's not "good form" to have the prototype
>> in multiple places...
>
> Attached updated diff
>
> Please Review
>
> diff --git a/mingw-w64-crt/intrincs/rdtsc.c b/mingw-w64-crt/intrincs/rdtsc.c
> index fd9cb75d..7c5adeb0 100644
> --- a/mingw-w64-crt/intrincs/rdtsc.c
> +++ b/mingw-w64-crt/intrincs/rdtsc.c
> @@ -4,11 +4,15 @@
>   * No warranty is given; refer to the file DISCLAIMER.PD within this
> package.
>   */
> -#ifdef __clang__
> -#define __IA32INTRIN_H
> -#endif
>  #include <intrin.h>
> +/* Clang has support for MSVC builtins, GCC doesn't */
> +#pragma push_macro("__has_builtin")
> +#ifndef __has_builtin
> +  #define __has_builtin(x) 0
> +#endif
> +
> +#if !__has_builtin(__rdtsc)
>  unsigned __int64 __rdtsc(void)
>  {
>  #ifdef _WIN64
> @@ -21,4 +25,4 @@ unsigned __int64 __rdtsc(void)
>            : "=a" (val1), "=d" (val2));
>        return ((unsigned __int64)val1) | (((unsigned __int64)val2) << 32);
>  }
> -
> +#endif
>
> On Sun, Apr 16, 2017 at 3:06 AM, David Wohlferd <[email protected]>
> wrote:
>
>> On 4/14/2017 7:14 AM, Martell Malone wrote:
>> > Updated clang no longer defines __IA32INTRIN_H so lets do this properly.
>>
>> It appears that the only use for <intrin.h> in that file is the
>> prototype for __rdtsc.  While it's not "good form" to have the prototype
>> in multiple places...
>>
>> > I assume intrin-impl.h is only ever included by intrin.h?
>>
>> Fraid not.
>>
>> mingw-w64-headers\include\winbase.h:#include <psdk_inc/intrin-impl.h>
>> mingw-w64-headers\include\winnt.h:#include <psdk_inc/intrin-impl.h>
>>
>> > If not I will have to find a way to deal with __has_builtin in both files
>>
>>
>> ------------------------------------------------------------
>> ------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Mingw-w64-public mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Mingw-w64-public mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to