diff options
author | Eric Blake <eblake@redhat.com> | 2012-07-13 14:02:05 -0600 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2012-07-13 14:31:48 -0600 |
commit | fabe8a68103e1014e4ad4551046bbd8ad8c5ae3c (patch) | |
tree | df8a87ea550670103a799c7efa663344cd41392e | |
parent | 70ab74b3b42a82654b16bc75242bf9b96daa9794 (diff) | |
download | gnulib-fabe8a68103e1014e4ad4551046bbd8ad8c5ae3c.tar.gz |
maint.mk: new syntax check for HAVE_DECL checks
Based on Karel's report, we might as well enforce a syntax check
to help avoid future problems.
https://lists.gnu.org/archive/html/coreutils/2012-06/msg00037.html
Exempt a few files that still get picked up in the wild rather
than as a full gnulib module with m4 files.
* 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.
Signed-off-by: Eric Blake <eblake@redhat.com>
-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 \ |