Hi Joerg, thanks for your comments. I agree that these false positives are annoying.
I submitted a while ago a patch to address those false positives in https://reviews.llvm.org/D23657 but it is pending approval. Kind regards, Roger > -----Original Message----- > From: Joerg Sonnenberger [mailto:jo...@bec.de] > Sent: 02 October 2016 07:24 > To: cfe-commits@lists.llvm.org > Cc: Roger Ferrer Ibanez > Subject: Re: r278483 - This patch implements PR#22821. > > On Sat, Oct 01, 2016 at 11:28:39PM +0200, Joerg Sonnenberger via cfe- > commits wrote: > > On Fri, Aug 12, 2016 at 08:04:13AM -0000, Roger Ferrer Ibanez via cfe- > commits wrote: > > > Author: rogfer01 > > > Date: Fri Aug 12 03:04:13 2016 > > > New Revision: 278483 > > > > > > URL: http://llvm.org/viewvc/llvm-project?rev=278483&view=rev > > > Log: > > > This patch implements PR#22821. > > > > > > Taking the address of a packed member is dangerous since the reduced > > > alignment of the pointee is lost. This can lead to memory alignment > > > faults in some architectures if the pointer value is dereferenced. > > > > This triggers on LVM in a rather obvious false positive: > > > > (uintptr_t) &lh->offset_xl > > > > Given that one correct use case is to take the address and cast it to > > void * (or uintptr_t) for use without caring about alignment, the > > warning clearly needs to be refined. > > Looking more at it, I request this warning to be disabled by default. In > the current form it is useless and just makes it impossible to use > packed structures at all. Before reenabling, it should handling: > (1) Assignment to pointer with reduced alignment > (2) Casts to pointer with reduced alignment > (3) Use as function argument with implicit cast like (2). > > at the very least to cover normal use of packed member pointers. > > Joerg _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits