On Tue, Feb 16, 2016 at 11:11:21AM +0100, Jakub Jelinek wrote: > On Tue, Feb 16, 2016 at 11:04:38AM +0100, Marek Polacek wrote: > > On Tue, Feb 16, 2016 at 10:43:08AM +0100, Stefan Sobernig wrote: > > > Under a recent gcc 6 [*], we run into -Wnonnull warnings using the > > > nonnull attribute: > > > > Yes, this warning has been enhanced for GCC 6. > > > > > test.c: In function 'f': > > > test.c:16:14: warning: nonnull argument 's' compared to NULL [-Wnonnull] > > > } while (s != NULL); > > > > > > Am I missing sth.? Is this a false positive? > > > > Well, it's just that "s" has the nonnull attribute so the compiler thinks it > > should never be null in which case comparing it to null should be redundant. > > Doesn't seem like a false positive to me, but maybe someone else feels > > otherwise. > > The nonnull attribute should be solely about the value that is passed to the > function, it doesn't tell anything about the value of the argument after > it is changed. So IMHO this warning change should be reverted and instead > we should warn somewhere soon after going into SSA, only when > the SSA_NAME_IS_DEFAULT_DEF of the PARM_DECL which has non-NULL attribute > is compared to NULL.
In that case I take back what I wrote, sorry. Marek