[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] Found a warning in libevent 2.0.21



Yes, it also seems happy with

           void (*tptr)() = arc4random_buf;


On Sep 19, 2013, at 6:54 AM, Nick Mathewson <nickm@xxxxxxxxxxxxx> wrote:

> On Tue, Sep 17, 2013 at 9:55 PM, Ralph Castain <rhc@xxxxxxxxxxxx> wrote:
>> I found a really simple solution!
>> 
>> #if defined(_EVENT_HAVE_ARC4RANDOM_BUF)
>>       /* OSX 10.7 introducd arc4random_buf, so if you build your program
>>        * there, you'll get surprised when older versions of OSX fail to run.
>>        * To solve this, we can check whether the function pointer is set,
>>        * and fall back otherwise.  (OSX does this using some linker
>>        * trickery.)
>>        */
>>       {
>>           void* tptr = (void*)arc4random_buf;
>>           if (tptr != NULL) {
>>               return arc4random_buf(buf, n);
>>           }
>>       }
>> #endif
>> 
>> Silences the warning just fine.
> 
> Does it still work if you cast it to void (*tptr)() ? ISTR that
> according to the C standard, function pointers can be cast to that,
> but not to void*. (Not that that stops anybody, but it's nice to be
> pedantic when we can.)
> ***********************************************************************
> To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
> unsubscribe libevent-users    in the body.

***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.