maint.mk: catch more abuse of HAVE_DECL in syntax-check
authorEric Blake <eblake@redhat.com>
Sat, 11 May 2013 02:24:21 +0000 (20:24 -0600)
committerEric Blake <eblake@redhat.com>
Sat, 11 May 2013 02:35:20 +0000 (20:35 -0600)
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

* top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex.

Signed-off-by: Eric Blake <eblake@redhat.com>
ChangeLog
top/maint.mk

index 13dafaa..5f4e4dc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-10  Eric Blake  <eblake@redhat.com>
+
+       maint.mk: catch more abuse of HAVE_DECL in syntax-check
+       * top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex.
+
 2012-05-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 
        deps: require Automake >= 1.9.6 in generated Makefile fragments
index 2b454a1..c1b786f 100644 (file)
@@ -809,7 +809,7 @@ sc_prohibit_always_true_header_tests:
          $(_sc_search_regexp)
 
 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)