diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | cfg.mk | 3 | ||||
-rw-r--r-- | top/maint.mk | 5 |
3 files changed, 15 insertions, 0 deletions
@@ -1,5 +1,12 @@ 2012-07-13 Eric Blake <eblake@redhat.com> + maint.mk: new syntax check for HAVE_DECL checks + * top/maint.mk (sc_prohibit_defined_have_decl_tests): New rule. + * cfg.mk + (exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests): + Exempt some false positives. + Based on a report by Karel Zak. + argp: make HAVE_DECL usage consistent * lib/argp-parse.c (__argp_parse): Check contents of HAVE_DECL macros, not whether they are defined. @@ -77,3 +77,6 @@ if_before_free_basename_re_ = \ exclude_file_name_regexp--sc_avoid_if_before_free = \ ^lib/($(if_before_free_basename_re_))\.c$$ + +exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests = \ + ^lib/((error|getopt|strtoimax)\.c|(argp-namefrob|fpending|getpass)\.h)$$ diff --git a/top/maint.mk b/top/maint.mk index 0023989753..5ca1a31375 100644 --- a/top/maint.mk +++ b/top/maint.mk @@ -777,6 +777,11 @@ sc_prohibit_always_true_header_tests: ' with the corresponding gnulib module, they are always true') \ $(_sc_search_regexp) +sc_prohibit_defined_have_decl_tests: + prohibit='#[ ]*if(n?def|.*\<defined)\>[ (]+HAVE_DECL_' \ + halt='$(ME): HAVE_DECL macros are always defined' \ + $(_sc_search_regexp) + # ================================================================== gl_other_headers_ ?= \ intprops.h \ |