I'm finally enabling this syntax-check rule for gnulib itself. Many of the files exempted below are because (from what I recall) Bruno prefers not to eliminate these tests.
Bruno, is it ok to remove the one in lib/clean-temp.c, below? >From 6337d9c614bd4eedbb7ba4e490925512b6709676 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyer...@redhat.com> Date: Wed, 11 Jul 2012 17:25:27 +0200 Subject: [PATCH] maint: enable the sc_avoid_if_before_free syntax-check rule * cfg.mk (local-checks-to-skip): Enable sc_avoid_if_before_free. (if_before_free_offenders_): Define. (if_before_free_basename_re_): Define. Exempt current files with useless if-before-free. * lib/clean-temp.c (create_temp_dir): Remove sole useless if-before-free from this file. --- ChangeLog | 10 ++++++++++ cfg.mk | 18 +++++++++++++++++- lib/clean-temp.c | 3 +-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d94f7b1..87b5eb5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2012-07-11 Jim Meyering <meyer...@redhat.com> + + maint: enable the sc_avoid_if_before_free syntax-check rule + * cfg.mk (local-checks-to-skip): Enable sc_avoid_if_before_free. + (if_before_free_offenders_): Define. + (if_before_free_basename_re_): Define. + Exempt current files with useless if-before-free. + * lib/clean-temp.c (create_temp_dir): Remove sole useless + if-before-free from this file. + 2012-07-10 Akim Demaille <a...@lrde.epita.fr> bootstrap: let warn be like tests/init.sh's warn_ diff --git a/cfg.mk b/cfg.mk index a2b4b48..be20445 100644 --- a/cfg.mk +++ b/cfg.mk @@ -3,7 +3,6 @@ local-checks-to-skip = \ sc_GFDL_version \ sc_GPL_version \ - sc_avoid_if_before_free \ sc_bindtextdomain \ sc_cast_of_alloca_return_value \ sc_cast_of_argument_to_free \ @@ -59,3 +58,20 @@ exclude_file_name_regexp--sc_trailing_blank = \ # Disable strncpy prohibition completely, for now. exclude_file_name_regexp--sc_prohibit_strncpy = .* + +if_before_free_offenders_ = \ + csharpcomp.c \ + free.c \ + fstrcmp.c \ + gl_carray_list.c \ + glob.c \ + glthread/lock.c \ + propername.c \ + relocatable.c \ + vasnprintf.c +if_before_free_basename_re_ = \ + $(shell printf '%s\n' '$(if_before_free_offenders_)' \ + |sed 's|\.c\>||g'|tr -s '[\n[:space:]]' '|') + +exclude_file_name_regexp--sc_avoid_if_before_free = \ + ^lib/($(if_before_free_basename_re_))\.c$$ diff --git a/lib/clean-temp.c b/lib/clean-temp.c index ef926e5..90269cd 100644 --- a/lib/clean-temp.c +++ b/lib/clean-temp.c @@ -302,8 +302,7 @@ create_temp_dir (const char *prefix, const char *parentdir, cleanup_list.tempdir_allocated = new_allocated; /* Now we can free the old array. */ - if (old_array != NULL) - free ((struct tempdir **) old_array); + free ((struct tempdir **) old_array); } tmpdirp = &cleanup_list.tempdir_list[cleanup_list.tempdir_count]; -- 1.7.11.1.165.g299666c