> It's *not* VMS specific! DEC C 6.2 for Unix issues very similar warning.
But it looks like DEC has VMS specific reason to be nervous about the
matter. Consider the following code:

#pragma required_pointer_size save /* Save the previous pointer size */
#pragma required_pointer_size 64 /* Set pointer size to 64 bits */
typedef void *ptr_64; /* Define a 64-bit char pointer */
typedef void (*func_ptr64) ();
#pragma required_pointer_size restore  /* Restore the pointer size */

main ()
{ printf ("%d%d%d%d\n",sizeof(void(*)()),sizeof(void *),
                       sizeof(func_64),sizeof(ptr_64));
}

It prints 4488! I.e. if program is compiled without /POINTER=64
command-line option:-) The worst is that it's possible to have say a
function returning 64-bit pointer in one module declared as function
returning 32-bit pointer in another module and link those modules
together... Well, it might still work as arguments are passed and
results returned through 64-bit register in either case, but the
potential is there. What would definitely break is a pointer to 64-bit
pointer vs. pointer to a 32-bit pointer, huh?

Further references:

http://www.digital.com/info/DTJM05/DTJM05HM.HTM
http://www.digital.com/info/DTJM06/DTJM06HM.HTM

Cheers. Andy.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to