summaryrefslogtreecommitdiff
path: root/top/maint.mk
diff options
context:
space:
mode:
authorJim Meyering <meyering@fb.com>2016-12-30 09:01:05 -0800
committerJim Meyering <meyering@fb.com>2016-12-30 09:01:05 -0800
commit1894933d68f985605a2822af8e9b84b3da3a56fc (patch)
tree65f94406a0670afb49bf2a02926d3007cf52324e /top/maint.mk
parentb724c4e6aa38373a61ef1c70ee9508c3f103955e (diff)
downloadgnulib-1894933d68f985605a2822af8e9b84b3da3a56fc.tar.gz
maint.mk: improve sc_prohibit_intprops_without_use
* top/maint.mk (_intprops_names): Don't hard-code the list of symbol names. Instead, derive it on the fly.
Diffstat (limited to 'top/maint.mk')
-rw-r--r--top/maint.mk20
1 files changed, 8 insertions, 12 deletions
diff --git a/top/maint.mk b/top/maint.mk
index 53a1e69a68..6eb9361ac4 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -657,18 +657,14 @@ sc_prohibit_strings_without_use:
re='\<(strn?casecmp|ffs(ll)?)\>' \
$(_sc_header_without_use)
-# Get the list of symbol names with this:
-# perl -lne '/^# *define ([A-Z]\w+)\(/ and print $1' lib/intprops.h|fmt
-_intprops_names = \
- TYPE_IS_INTEGER TYPE_SIGNED EXPR_SIGNED TYPE_WIDTH TYPE_MINIMUM \
- TYPE_MAXIMUM INT_BITS_STRLEN_BOUND INT_STRLEN_BOUND INT_BUFSIZE_BOUND \
- INT_ADD_RANGE_OVERFLOW INT_SUBTRACT_RANGE_OVERFLOW \
- INT_NEGATE_RANGE_OVERFLOW INT_MULTIPLY_RANGE_OVERFLOW \
- INT_DIVIDE_RANGE_OVERFLOW INT_REMAINDER_RANGE_OVERFLOW \
- INT_LEFT_SHIFT_RANGE_OVERFLOW INT_ADD_OVERFLOW INT_SUBTRACT_OVERFLOW \
- INT_NEGATE_OVERFLOW INT_NEGATE_OVERFLOW INT_MULTIPLY_OVERFLOW \
- INT_DIVIDE_OVERFLOW INT_REMAINDER_OVERFLOW INT_LEFT_SHIFT_OVERFLOW \
- INT_ADD_WRAPV INT_SUBTRACT_WRAPV INT_MULTIPLY_WRAPV
+# Extract the raw list of symbol names with this:
+gl_extract_define_simple = \
+ /^\# *define ([A-Z]\w+)\(/ and print $$1
+# Filter out duplicates and convert to a space-separated list:
+_intprops_names := \
+ $(shell f=$(gnulib_dir)/lib/intprops.h; \
+ perl -lne '$(gl_extract_define_simple)' $$f | sort -u | tr '\n' ' ')
+# Remove trailing space and convert to a regular expression:
_intprops_syms_re = $(subst $(_sp),|,$(strip $(_intprops_names)))
# Prohibit the inclusion of intprops.h without an actual use.
sc_prohibit_intprops_without_use: