[zeromq-dev] HP-UX compile.
George Neill
georgen at neillnet.com
Mon Nov 17 18:23:23 CET 2008
Martin,
On Mon, Nov 17, 2008 at 3:00 AM, Martin Sustrik <sustrik at fastmq.com> wrote:
> Hi George,
>
> We don't have HP-UX here so it would be helpful if you can check following
> changes and let us know whether they help to get rid of the warnings:
>
>> "/home/gneill/zmq/trunk/zmq/ip.cpp", line 205: warning #4232-D: conversion
>> from "sockaddr *" to a more strictly aligned type "sockaddr_in *"
>> may cause misaligned access
>> *addr_ = *((sockaddr_in *) res->ai_addr);
>
> Copying the memory explicitly may help here:
>
> memcpy (addr_, res->ai_addr, sizeof (sockaddr_in));
Yes this resolves the warning, but probably should be sockaddr (not
sockaddr_in),
- *addr_ = *((sockaddr_in *) res->ai_addr);
+ memcpy(addr_, res->ai_addr, sizeof(struct sockaddr));
I was wondering why the resolve_ip_hostname function didn't take a
sockaddr* and just use the ai_addr member without casting, but I found
the resolve_ip_hostname function does more than just resolve a
hostname! :)
>>
>> "/home/gneill/zmq/trunk/zmq/select_thread.cpp", line 243: warning #2940-D:
>> missing return statement at end of non-void function
>> "zmq::select_thread_t::process_command"
>> }
>
> I would say the compiler doesn't recognise "assert (false)" as a termination
> statement. Try this:
>
> default:
> assert (false);
> return false;
This also resolves the warning.
Thanks,
George.
More information about the zeromq-dev
mailing list