bmoeller> bit data pointers).  To force C to convert values between
bmoeller> these types, you'd have to cast to some integer type inbetween:
bmoeller> 
bmoeller>         (void (*)()) (long) cb

This may very well be a problem on architectures where a pointer is 64
bits while a long is 32 bits.  I think that some versions of Compaq C
on Alpha (VMS and True64) have this quirk...

bmoeller> But of course this is so complicated because it should never
bmoeller> be done and is not guaranteed to do anything useful.  &cb,
bmoeller> on the other hand, is the pointer to some data object; the
bmoeller> function that gets this pointer as an argument has to
bmoeller> retrieve the actual function pointer from inside this data
bmoeller> object, i.e. use *((void (**)()) arg) where arg is the void
bmoeller> * argument passed to it.

I was pondering such a solution, but I foresaw a problem with it:
&strcmp is the same as strcmp, and that might be a difficult bug to
find...

-- 
Richard Levitte   \ Spannv�gen 38, II \ [EMAIL PROTECTED]
Redakteur@Stacken  \ S-161 43  BROMMA  \ T: +46-8-26 52 47
                    \      SWEDEN       \ or +46-708-26 53 44
Procurator Odiosus Ex Infernis             -- [EMAIL PROTECTED]

Unsolicited commercial email is subject to an archival fee of $400.
See <http://www.stacken.kth.se/~levitte/mail/> for more info.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to