From fabe8a68103e1014e4ad4551046bbd8ad8c5ae3c Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 13 Jul 2012 14:02:05 -0600 Subject: [PATCH] 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 --- ChangeLog | 7 +++++++ cfg.mk | 3 +++ top/maint.mk | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index f3633d1b7..43572faa1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2012-07-13 Eric Blake + 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. diff --git a/cfg.mk b/cfg.mk index 45a321cef..bf5902447 100644 --- a/cfg.mk +++ b/cfg.mk @@ -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 002398975..5ca1a3137 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|.*\[ (]+HAVE_DECL_' \ + halt='$(ME): HAVE_DECL macros are always defined' \ + $(_sc_search_regexp) + # ================================================================== gl_other_headers_ ?= \ intprops.h \ -- 2.11.0