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.

Reply via email to