On 6 October 2010 06:10, Edwin Eyan Moragas <e...@yndy.org> wrote: > Hi misc, > > while compiling picolisp on openbsd, i encounter this warning: > > gcc -c -O2 -m32 -pipe -falign-functions -fomit-frame-pointer > -fno-strict-aliasing -W -Wimplicit -Wreturn-type -Wunused -Wformat > -Wuninitialized -Wstrict-prototypes -D_GNU_SOURCE > -D_FILE_OFFSET_BITS=64 -D_OS='"OpenBSD"' net.c > net.c: In function `doHost': > net.c:116: warning: passing arg 2 of `inet_aton' from incompatible pointer type > net.c: In function `server': > net.c:130: warning: passing arg 2 of `inet_aton' from incompatible pointer type > > the code in question is: > > any doHost(any x) { > struct in_addr in; > struct hostent *p; > > x = evSym(cdr(x)); > { > char nm[bufSize(x)]; > > bufString(x, nm); > if (inet_aton(nm, &in) && (p = gethostbyaddr((char*)&in, > sizeof(in), AF_INET))) > return mkStr(p->h_name); > return Nil; > } > } > > checking out the man pages for inet_aton(3), i didn't see anything > that would lead to the warning. so i tried to tweak the order of the > header files to reflect that of the man pages. > > the diff to the source would look like: > > e...@obsd $ diff -u net.c* > --- net.c Thu Oct 7 01:05:22 2010 > +++ net.c.orig Thu Oct 7 01:02:58 2010 > @@ -6,9 +6,9 @@ > > #include <netdb.h> > #include <sys/socket.h> > -#include <arpa/inet.h> > #include <netinet/tcp.h> > #include <netinet/in.h> > +#include <arpa/inet.h> > > compiling the source after changing the order of includes didn't > produce the warning. > > is this really supposed to happen? >
man 3 inet_aton: SYNOPSIS #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> So yes, order does matter.