Eric Blake wrote: > Libvirt had a patch that attempted to do: > > +#elif defined(SIOCSIFLLADDR) && defined(HAVE_STRUCT_IFREQ) && \ > + defined(HAVE_DECL_LINK_ADDR) > > but which was not flagged by the syntax checker as suspicious > (all HAVE_DECL_* symbols defined by autoconf are always defined > after including <config.h>, although they are sometimes defined > as the value 0). Now that code is flagged until changed to: > > +#elif defined(SIOCSIFLLADDR) && defined(HAVE_STRUCT_IFREQ) && \ > + HAVE_DECL_LINK_ADDR ... > sc_prohibit_defined_have_decl_tests: > - @prohibit='#[ ]*if(n?def|.*\<defined)\>[ (]+HAVE_DECL_' \ > + @prohibit='(#[ ]*ifn?def|\<defined)\>[ (]+HAVE_DECL_' \ > halt='HAVE_DECL macros are always defined' \ > $(_sc_search_regexp)
Thanks for the improvement.