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)
                {