|
Message-ID: <20161011150901.GG19318@brightrain.aerifal.cx> Date: Tue, 11 Oct 2016 11:09:01 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: Using macro CMSG_NXTHDR generates warnings with CLANG On Mon, Oct 10, 2016 at 10:09:38PM +0000, Jan Vorlicek wrote: > Trying to build a piece of code that uses CMSG_NXTHDR macro using > CLANG (tested with CLANG 3.8) with all warnings enabled using > -Weverything generates the following warnings: > > clang++ -Weverything ./nettest.cpp -c -o nettest.o > > ../nettest.cpp:5:12: warning: cast from 'unsigned char *' to 'struct cmsghdr *' increases required alignment from 1 to 4 [-Wcast-align] > return CMSG_NXTHDR(mhdr, cmsg); > ^~~~~~~~~~~~~~~~~~~~~~~ > /usr/include/sys/socket.h:270:8: note: expanded from macro 'CMSG_NXTHDR' > ? 0 : (struct cmsghdr *)__CMSG_NEXT(cmsg)) > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ../nettest.cpp:5:12: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare] > return CMSG_NXTHDR(mhdr, cmsg); > ^~~~~~~~~~~~~~~~~~~~~~~ > /usr/include/sys/socket.h:269:44: note: expanded from macro 'CMSG_NXTHDR' > __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \ > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 2 warnings generated. > > The testing source is below: > > #include <sys/socket.h> > cmsghdr* GET_CMSG_NXTHDR(msghdr* mhdr, cmsghdr* cmsg); > > cmsghdr* GET_CMSG_NXTHDR(msghdr* mhdr, cmsghdr* cmsg) > { > return CMSG_NXTHDR(mhdr, cmsg); > } > > Would it be possible to fix it so that no warnings are generated? We > are building our application with -Weverything and currently we need > to disable these two warnings around the CMSG_NXTHDR macro > invocation. > Thank you in advance for considering that! As these are system headers, the compiler should not be producing any warnings from them. If it does that's a compiler bug. Are you perhaps using an odd setup where musl's headers aren't in the default system include path but instead passed in via -I rather than -isystem? If you have a minimal test file I could see if the same warnings appear with clang on Alpine Linux. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.