Fix -Wcast-function-type warnings on Windows/MinGW
authorPeter Eisentraut <peter@eisentraut.org>
Wed, 21 Oct 2020 06:17:51 +0000 (08:17 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Wed, 21 Oct 2020 06:17:51 +0000 (08:17 +0200)
After de8feb1f3a23465b5737e8a8c160e8ca62f61339, some warnings remained
that were only visible when using GCC on Windows.  Fix those as well.

Note that the ecpg test source files don't use the full pg_config.h,
so we can't use pg_funcptr_t there but have to do it the long way.

src/backend/libpq/auth.c
src/backend/port/win32/crashdump.c
src/bin/pg_ctl/pg_ctl.c
src/common/restricted_token.c
src/interfaces/ecpg/test/expected/thread-thread.c
src/interfaces/ecpg/test/expected/thread-thread_implicit.c
src/interfaces/ecpg/test/thread/thread.pgc
src/interfaces/ecpg/test/thread/thread_implicit.pgc
src/port/getaddrinfo.c
src/port/win32env.c
src/port/win32stat.c

index 36565df4fc1e488dd7348aac9b3476b96a87bb0a..d132c5cb48bd70a453fd54a73ee99701f34dfd06 100644 (file)
@@ -1521,7 +1521,7 @@ pg_SSPI_recvauth(Port *port)
                (errmsg("could not load library \"%s\": error code %lu",
                        "SECUR32.DLL", GetLastError())));
 
-   _QuerySecurityContextToken = (QUERY_SECURITY_CONTEXT_TOKEN_FN)
+   _QuerySecurityContextToken = (QUERY_SECURITY_CONTEXT_TOKEN_FN) (pg_funcptr_t)
        GetProcAddress(secur32, "QuerySecurityContextToken");
    if (_QuerySecurityContextToken == NULL)
    {
@@ -2522,7 +2522,7 @@ InitializeLDAPConnection(Port *port, LDAP **ldap)
                ldap_unbind(*ldap);
                return STATUS_ERROR;
            }
-           _ldap_start_tls_sA = (__ldap_start_tls_sA) GetProcAddress(ldaphandle, "ldap_start_tls_sA");
+           _ldap_start_tls_sA = (__ldap_start_tls_sA) (pg_funcptr_t) GetProcAddress(ldaphandle, "ldap_start_tls_sA");
            if (_ldap_start_tls_sA == NULL)
            {
                ereport(LOG,
index e6c68379b20e2594243cfbbc1f4521291488f082..47114d916cc1d6a3353ce657f294a3fd85376d63 100644 (file)
@@ -122,7 +122,7 @@ crashDumpHandler(struct _EXCEPTION_POINTERS *pExceptionInfo)
            return EXCEPTION_CONTINUE_SEARCH;
        }
 
-       pDump = (MINIDUMPWRITEDUMP) GetProcAddress(hDll, "MiniDumpWriteDump");
+       pDump = (MINIDUMPWRITEDUMP) (pg_funcptr_t) GetProcAddress(hDll, "MiniDumpWriteDump");
 
        if (pDump == NULL)
        {
index 1cdc3ebaa338d7b9be54b195635d3529bc4e79fd..fc07f1aba6e7767420634f1a6c26ccd3b5a0ea4e 100644 (file)
@@ -1778,7 +1778,7 @@ CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo, bool as_ser
    Advapi32Handle = LoadLibrary("ADVAPI32.DLL");
    if (Advapi32Handle != NULL)
    {
-       _CreateRestrictedToken = (__CreateRestrictedToken) GetProcAddress(Advapi32Handle, "CreateRestrictedToken");
+       _CreateRestrictedToken = (__CreateRestrictedToken) (pg_funcptr_t) GetProcAddress(Advapi32Handle, "CreateRestrictedToken");
    }
 
    if (_CreateRestrictedToken == NULL)
@@ -1852,11 +1852,11 @@ CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo, bool as_ser
    Kernel32Handle = LoadLibrary("KERNEL32.DLL");
    if (Kernel32Handle != NULL)
    {
-       _IsProcessInJob = (__IsProcessInJob) GetProcAddress(Kernel32Handle, "IsProcessInJob");
-       _CreateJobObject = (__CreateJobObject) GetProcAddress(Kernel32Handle, "CreateJobObjectA");
-       _SetInformationJobObject = (__SetInformationJobObject) GetProcAddress(Kernel32Handle, "SetInformationJobObject");
-       _AssignProcessToJobObject = (__AssignProcessToJobObject) GetProcAddress(Kernel32Handle, "AssignProcessToJobObject");
-       _QueryInformationJobObject = (__QueryInformationJobObject) GetProcAddress(Kernel32Handle, "QueryInformationJobObject");
+       _IsProcessInJob = (__IsProcessInJob) (pg_funcptr_t) GetProcAddress(Kernel32Handle, "IsProcessInJob");
+       _CreateJobObject = (__CreateJobObject) (pg_funcptr_t) GetProcAddress(Kernel32Handle, "CreateJobObjectA");
+       _SetInformationJobObject = (__SetInformationJobObject) (pg_funcptr_t) GetProcAddress(Kernel32Handle, "SetInformationJobObject");
+       _AssignProcessToJobObject = (__AssignProcessToJobObject) (pg_funcptr_t) GetProcAddress(Kernel32Handle, "AssignProcessToJobObject");
+       _QueryInformationJobObject = (__QueryInformationJobObject) (pg_funcptr_t) GetProcAddress(Kernel32Handle, "QueryInformationJobObject");
    }
 
    /* Verify that we found all functions */
index d8d3aeffcdc2eaacbd97a0e9727a150d24d8bf05..dcc88a75c59d84c811d151d642a0ba8adf0aa9f4 100644 (file)
@@ -66,7 +66,7 @@ CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo)
        return 0;
    }
 
-   _CreateRestrictedToken = (__CreateRestrictedToken) GetProcAddress(Advapi32Handle, "CreateRestrictedToken");
+   _CreateRestrictedToken = (__CreateRestrictedToken) (pg_funcptr_t) GetProcAddress(Advapi32Handle, "CreateRestrictedToken");
 
    if (_CreateRestrictedToken == NULL)
    {
index a7e401570a40975a2a1f83c86f69d5d7b3f6502d..0e75c47fab26e0014248c54ecc70ce292b0462a2 100644 (file)
@@ -99,7 +99,7 @@ int main()
 #ifndef WIN32
       pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1));
 #else
-      threads[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)test_thread, (void *) (n + 1), 0, NULL);
+      threads[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) (void (*) (void)) test_thread, (void *) (n + 1), 0, NULL);
 #endif
     }
 
index 6c7adb062c8075ae6c6678cc188a607c199ee63f..0df2794530c92725a9f610c4810a36a6d87f9cc7 100644 (file)
@@ -99,7 +99,7 @@ int main()
 #ifndef WIN32
       pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1));
 #else
-      threads[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) test_thread, (void *) (n+1), 0, NULL);
+      threads[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) (void (*) (void)) test_thread, (void *) (n+1), 0, NULL);
 #endif
     }
 
index e149b91d976b096cf540c417ca4ac3527f3e51b9..e7d8c00af6f4b491841341f69caa5c592f2ed209 100644 (file)
@@ -68,7 +68,7 @@ int main()
 #ifndef WIN32
       pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1));
 #else
-      threads[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)test_thread, (void *) (n + 1), 0, NULL);
+      threads[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) (void (*) (void)) test_thread, (void *) (n + 1), 0, NULL);
 #endif
     }
 
index 3209da22bc54d78202be1823ab44f51e76452c7d..b4cae7e1aecf3872a00cd7f4a38b01baaa741593 100644 (file)
@@ -68,7 +68,7 @@ int main()
 #ifndef WIN32
       pthread_create(&threads[n], NULL, test_thread, (void *) (n + 1));
 #else
-      threads[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) test_thread, (void *) (n+1), 0, NULL);
+      threads[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) (void (*) (void)) test_thread, (void *) (n+1), 0, NULL);
 #endif
     }
 
index 3b51eea4815e24a3ead304efdd58ea1f714b6ae2..495ad343f392dc867b5013d46b5dc2f19fc4e227 100644 (file)
@@ -79,12 +79,12 @@ haveNativeWindowsIPv6routines(void)
    {
        /* We found a dll, so now get the addresses of the routines */
 
-       getaddrinfo_ptr = (getaddrinfo_ptr_t) GetProcAddress(hLibrary,
-                                                            "getaddrinfo");
-       freeaddrinfo_ptr = (freeaddrinfo_ptr_t) GetProcAddress(hLibrary,
-                                                              "freeaddrinfo");
-       getnameinfo_ptr = (getnameinfo_ptr_t) GetProcAddress(hLibrary,
-                                                            "getnameinfo");
+       getaddrinfo_ptr = (getaddrinfo_ptr_t) (pg_funcptr_t) GetProcAddress(hLibrary,
+                                                                           "getaddrinfo");
+       freeaddrinfo_ptr = (freeaddrinfo_ptr_t) (pg_funcptr_t) GetProcAddress(hLibrary,
+                                                                             "freeaddrinfo");
+       getnameinfo_ptr = (getnameinfo_ptr_t) (pg_funcptr_t) GetProcAddress(hLibrary,
+                                                                           "getnameinfo");
 
        /*
         * If any one of the routines is missing, let's play it safe and
index 2021f3d5aa6e6b301ebab9764fee3852d8059161..177488cc67ea9230116746732db9ad72b92d23dd 100644 (file)
@@ -95,7 +95,7 @@ pgwin32_putenv(const char *envval)
        {
            PUTENVPROC  putenvFunc;
 
-           putenvFunc = (PUTENVPROC) GetProcAddress(hmodule, "_putenv");
+           putenvFunc = (PUTENVPROC) (pg_funcptr_t) GetProcAddress(hmodule, "_putenv");
            if (putenvFunc)
                putenvFunc(envval);
            FreeLibrary(hmodule);
index 9051c713e7bd86ea2f73660092c18f5531e531ad..4351aa4d08f25ab8a29f715605d9202d9c50b75f 100644 (file)
@@ -227,7 +227,7 @@ _pgstat64(const char *name, struct stat *buf)
            return -1;
        }
 
-       _NtQueryInformationFile = (PFN_NTQUERYINFORMATIONFILE)
+       _NtQueryInformationFile = (PFN_NTQUERYINFORMATIONFILE) (pg_funcptr_t)
            GetProcAddress(ntdll, "NtQueryInformationFile");
        if (_NtQueryInformationFile == NULL)
        {