Hello,

The patch "intrin-impl.h: Use volatile argument for __buildbittesti-based 
functions."
is not working well for me (I can't compile GCC with this patch).

The problem is with one extra 'volatile':

@@ -615,28 +614,28 @@ __buildstos(__stosq, unsigned __int64, "q|q")
 #endif /* __INTRINSIC_PROLOG */
 
 #if __INTRINSIC_PROLOG(_interlockedbittestandset64)
-__MINGW_EXTENSION unsigned char _interlockedbittestandset64(__int64 *a, 
__int64 b);
+__MINGW_EXTENSION unsigned char _interlockedbittestandset64(__int64 volatile 
*a, __int64 b);
 #if !__has_builtin(_interlockedbittestandset64)
 __INTRINSICS_USEINLINE
-__buildbittesti(_interlockedbittestandset64, __int64, "lock bts{q 
%[Offset],%[Base] | %[Base],%[Offset]}" __FLAGSET, "J", __int64)
+__buildbittesti(_interlockedbittestandset64, __int64 volatile, "lock bts{q 
%[Offset],%[Base] | %[Base],%[Offset]}" __FLAGSET, "J")

in the last line in the second param '__int64 volatile' could/should be without 
volatile
(which is always added by __buildbittesti macro).

Apart from that the patch is OK for me.

Mateusz


------------------------------------------------------------------------------
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
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to