With later version of DEC C on VMS, some functions (strcmp(), for
example) are declared with some extra linkage information. This generates a warning when using the function name as a value to a regular function pointer with the "correct" definition of the function. Therefore, use a macro to cast the appropriate function on VMS.
This commit is contained in:
parent
14565bedaf
commit
460fe31f0c
@ -5,6 +5,18 @@
|
||||
#include <openssl/lhash.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/safestack.h>
|
||||
#include <openssl/e_os2.h>
|
||||
|
||||
/* Later versions of DEC C has started to add lnkage information to certain
|
||||
* functions, which makes it tricky to use them as values to regular function
|
||||
* pointers. One way is to define a macro that takes care of casting them
|
||||
* correctly.
|
||||
*/
|
||||
#ifdef OPENSSL_SYS_VMS_DECC
|
||||
# define OPENSSL_strcmp (int (*)(const char *,const char *))strcmp
|
||||
#else
|
||||
# define OPENSSL_strcmp strcmp
|
||||
#endif
|
||||
|
||||
/* I use the ex_data stuff to manage the identifiers for the obj_name_types
|
||||
* that applications may define. I only really use the free function field.
|
||||
@ -68,7 +80,7 @@ int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *),
|
||||
MemCheck_off();
|
||||
name_funcs = OPENSSL_malloc(sizeof(NAME_FUNCS));
|
||||
name_funcs->hash_func = lh_strhash;
|
||||
name_funcs->cmp_func = strcmp;
|
||||
name_funcs->cmp_func = OPENSSL_strcmp;
|
||||
name_funcs->free_func = 0; /* NULL is often declared to
|
||||
* ((void *)0), which according
|
||||
* to Compaq C is not really
|
||||
|
Loading…
Reference in New Issue
Block a user