[1/3] eal/windows: fix pedantic build
Checks
Commit Message
MinGW GCC 12 shows an illegal pointer conversion
when included in a pedantic module:
lib/eal/windows/include/pthread.h:137:41: error:
ISO C forbids conversion of object pointer to function pointer type
[-Werror=pedantic]
137 | hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadfunc,
| ^
Fixes: e8428a9d89f1 ("eal/windows: add some basic functions and macros")
Cc: stable@dpdk.org
By using uintptr_t, the compiler is forced to accept the conversion.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
lib/eal/windows/include/pthread.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
On Thu, Jan 05, 2023 at 05:10:18PM +0100, Thomas Monjalon wrote:
> MinGW GCC 12 shows an illegal pointer conversion
> when included in a pedantic module:
>
> lib/eal/windows/include/pthread.h:137:41: error:
> ISO C forbids conversion of object pointer to function pointer type
> [-Werror=pedantic]
> 137 | hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadfunc,
> | ^
>
> Fixes: e8428a9d89f1 ("eal/windows: add some basic functions and macros")
> Cc: stable@dpdk.org
>
> By using uintptr_t, the compiler is forced to accept the conversion.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
@@ -134,7 +134,8 @@ pthread_create(void *threadid, const void *threadattr, void *threadfunc,
{
RTE_SET_USED(threadattr);
HANDLE hThread;
- hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadfunc,
+ hThread = CreateThread(NULL, 0,
+ (LPTHREAD_START_ROUTINE)(uintptr_t)threadfunc,
args, 0, (LPDWORD)threadid);
if (hThread) {
SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);