http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36299
--- Comment #8 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2011-03-02 10:51:51 UTC --- (In reply to comment #7) > (In reply to comment #6) > > I think the intention is to warn, at least for a == (void *)0, since the > > address of a cannot be zero or null. So I would say that this is a > > regression. > > But this is valid in C, and in practice, such a test can occur in macro > expansions: a macro can check whether some pointer is null before doing > something with it. There shouldn't be a warning in such a case. Every warning warns about something valid in C, otherwise it would be an error not a warning.