summaryrefslogtreecommitdiffstats
path: root/crypto/dso
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2015-09-28 16:00:08 +0200
committerAndy Polyakov <appro@openssl.org>2015-09-29 18:05:40 +0200
commit156561b0ade98b22df0e3ebc63682e54129c2cb4 (patch)
tree82e74e7ae87b15286228edeb711d0826a97704e8 /crypto/dso
parent16a9542a1723828c5b2dbe854a2864aa3ed2b11e (diff)
Fix pedantic warnings in mingw builds.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto/dso')
-rw-r--r--crypto/dso/dso_win32.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/crypto/dso/dso_win32.c b/crypto/dso/dso_win32.c
index c6fec6625a..8d2123ed08 100644
--- a/crypto/dso/dso_win32.c
+++ b/crypto/dso/dso_win32.c
@@ -224,7 +224,10 @@ static int win32_unload(DSO *dso)
static void *win32_bind_var(DSO *dso, const char *symname)
{
HINSTANCE *ptr;
- void *sym;
+ union {
+ void *p;
+ FARPROC f;
+ } sym;
if ((dso == NULL) || (symname == NULL)) {
DSOerr(DSO_F_WIN32_BIND_VAR, ERR_R_PASSED_NULL_PARAMETER);
@@ -239,19 +242,22 @@ static void *win32_bind_var(DSO *dso, const char *symname)
DSOerr(DSO_F_WIN32_BIND_VAR, DSO_R_NULL_HANDLE);
return (NULL);
}
- sym = GetProcAddress(*ptr, symname);
- if (sym == NULL) {
+ sym.f = GetProcAddress(*ptr, symname);
+ if (sym.p == NULL) {
DSOerr(DSO_F_WIN32_BIND_VAR, DSO_R_SYM_FAILURE);
ERR_add_error_data(3, "symname(", symname, ")");
return (NULL);
}
- return (sym);
+ return (sym.p);
}
static DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname)
{
HINSTANCE *ptr;
- void *sym;
+ union {
+ void *p;
+ FARPROC f;
+ } sym;
if ((dso == NULL) || (symname == NULL)) {
DSOerr(DSO_F_WIN32_BIND_FUNC, ERR_R_PASSED_NULL_PARAMETER);
@@ -266,13 +272,13 @@ static DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname)
DSOerr(DSO_F_WIN32_BIND_FUNC, DSO_R_NULL_HANDLE);
return (NULL);
}
- sym = GetProcAddress(*ptr, symname);
- if (sym == NULL) {
+ sym.f = GetProcAddress(*ptr, symname);
+ if (sym.p == NULL) {
DSOerr(DSO_F_WIN32_BIND_FUNC, DSO_R_SYM_FAILURE);
ERR_add_error_data(3, "symname(", symname, ")");
return (NULL);
}
- return ((DSO_FUNC_TYPE)sym);
+ return ((DSO_FUNC_TYPE)sym.f);
}
struct file_st {
@@ -704,7 +710,10 @@ static void *win32_globallookup(const char *name)
CREATETOOLHELP32SNAPSHOT create_snap;
CLOSETOOLHELP32SNAPSHOT close_snap;
MODULE32 module_first, module_next;
- FARPROC ret = NULL;
+ union {
+ void *p;
+ FARPROC f;
+ } ret = { NULL };
dll = LoadLibrary(TEXT(DLLNAME));
if (dll == NULL) {
@@ -745,10 +754,10 @@ static void *win32_globallookup(const char *name)
}
do {
- if ((ret = GetProcAddress(me32.hModule, name))) {
+ if ((ret.f = GetProcAddress(me32.hModule, name))) {
(*close_snap) (hModuleSnap);
FreeLibrary(dll);
- return ret;
+ return ret.p;
}
} while ((*module_next) (hModuleSnap, &me32));