headers/wdm: Remove local definitions of `InterlockedBitTestAndSet()` and `InterlockedBitTestAndReset()`
Previously, these caused errors when compiled as C++:
In file included from test1.cpp:1:
C:/MSYS64/ucrt64/include/ddk/wdm.h:205:1: error: 'BOOLEAN InterlockedBitTestAndSet(volatile LONG*, LONG)' redeclared inline without 'gnu_inline' attribute
205 | InterlockedBitTestAndSet(
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/MSYS64/ucrt64/include/intrin.h:41,
from C:/MSYS64/ucrt64/include/ddk/wdm.h:68:
C:/MSYS64/ucrt64/include/psdk_inc/intrin-impl.h:1850:1: note: 'unsigned char InterlockedBitTestAndSet(volatile long int*, long int)' previously defined here
1850 | __buildbittesti(InterlockedBitTestAndSet, __LONG32, "lock bts{l %[Offset],%[Base] | %[Base],%[Offset]}" __FLAGSET, "I")
| ^~~~~~~~~~~~~~~
C:/MSYS64/ucrt64/include/ddk/wdm.h:224:1: error: 'BOOLEAN InterlockedBitTestAndReset(volatile LONG*, LONG)' redeclared inline without 'gnu_inline' attribute
224 | InterlockedBitTestAndReset(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
C:/MSYS64/ucrt64/include/psdk_inc/intrin-impl.h:1859:1: note: 'unsigned char InterlockedBitTestAndReset(volatile long int*, long int)' previously defined here
1859 | __buildbittesti(InterlockedBitTestAndReset, __LONG32, "lock btr{l %[Offset],%[Base] | %[Base],%[Offset]}" __FLAGSET, "I")
| ^~~~~~~~~~~~~~~
When compiled as C, the static definitions were treated as external ones and
caused linker errors instead.
This fixes https://github.com/mingw-w64/mingw-w64/issues/111.
Signed-off-by: LIU Hao <lh_mouse@126.com>
1 file changed