◐ Shell
clean mode source ↗

Message 328301 - Python tracker

func_cast.c: C program reproducing the issue. Using an additional (void*) cast, it's possible to workaround the cast warning.

/* Test GCC 8.1 -Wcast-function-type for https://bugs.python.org/issue33015
 *
 * Compiled on Linux with:
 * gcc x.c -o x -Wall -Wextra -lpthread
 *
 * Workaround the cast:
 * gcc x.c -o x -Wall -Wextra -lpthread -D UGLY_CAST
 */


/* No result value */
typedef void (*python_callback) (void *);

/* Result type: "void*" (untyped pointer) */
typedef void* (*pthread_callback) (void *);

int test_cast(python_callback func)
{
    ...
#ifdef UGLY_CAST
    pthread_callback func2 = (pthread_callback)(void *)func;
#else
    pthread_callback func2 = (pthread_callback)func;
#endif
    ...
}