From b43ff180fb2e372adce876bfa155fc9bcf0c3db4 Mon Sep 17 00:00:00 2001 From: Jia Tan Date: Thu, 19 Jan 2023 20:35:09 +0800 Subject: [PATCH] tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 to retrieve a function address. The proper way to do this is to cast the return value to the type of function pointer retrieved. Unfortunately, this causes a cast-function-type warning, so the best solution is to simply ignore the warning. --- src/common/tuklib_physmem.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/common/tuklib_physmem.c b/src/common/tuklib_physmem.c index a1bccb2f..73d37c29 100644 --- a/src/common/tuklib_physmem.c +++ b/src/common/tuklib_physmem.c @@ -87,8 +87,17 @@ tuklib_physmem(void) HMODULE kernel32 = GetModuleHandle(TEXT("kernel32.dll")); if (kernel32 != NULL) { typedef BOOL (WINAPI *gmse_type)(LPMEMORYSTATUSEX); +#if TUKLIB_GNUC_REQ(8,1) || (defined(__clang__) \ + && __has_warning("-Wcast-function-type")) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wcast-function-type" +#endif gmse_type gmse = (gmse_type)GetProcAddress( kernel32, "GlobalMemoryStatusEx"); +#if TUKLIB_GNUC_REQ(8,1) || (defined(__clang__) \ + && __has_warning("-Wcast-function-type")) +# pragma GCC diagnostic pop +#endif if (gmse != NULL) { MEMORYSTATUSEX meminfo; meminfo.dwLength = sizeof(meminfo);