From b660b1d9693300f0e6d9bdecfd36640fe808f443 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 8 May 2020 18:05:35 +0200 Subject: [PATCH] xsize: Use module 'attribute'. * lib/xsize.h: Include attribute.h. Use ATTRIBUTE_PURE. * modules/xsize (Depends-on): Add attribute. --- ChangeLog | 6 ++++++ lib/xsize.h | 23 +++++++---------------- modules/xsize | 1 + 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0e0cc81ff8..df4f5d102e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2020-05-08 Bruno Haible + + xsize: Use module 'attribute'. + * lib/xsize.h: Include attribute.h. Use ATTRIBUTE_PURE. + * modules/xsize (Depends-on): Add attribute. + 2020-05-06 Paul Eggert * m4/gnulib-common.m4 (gl_COMMON_BODY): Minor style fixes. diff --git a/lib/xsize.h b/lib/xsize.h index cd12677256..8e5f14c8f3 100644 --- a/lib/xsize.h +++ b/lib/xsize.h @@ -27,6 +27,9 @@ # include #endif +/* Get ATTRIBUTE_PURE. */ +#include "attribute.h" + #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif @@ -56,10 +59,7 @@ _GL_INLINE_HEADER_BEGIN ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX) /* Sum of two sizes, with overflow check. */ -XSIZE_INLINE size_t -#if __GNUC__ >= 3 -__attribute__ ((__pure__)) -#endif +XSIZE_INLINE size_t ATTRIBUTE_PURE xsum (size_t size1, size_t size2) { size_t sum = size1 + size2; @@ -67,30 +67,21 @@ xsum (size_t size1, size_t size2) } /* Sum of three sizes, with overflow check. */ -XSIZE_INLINE size_t -#if __GNUC__ >= 3 -__attribute__ ((__pure__)) -#endif +XSIZE_INLINE size_t ATTRIBUTE_PURE xsum3 (size_t size1, size_t size2, size_t size3) { return xsum (xsum (size1, size2), size3); } /* Sum of four sizes, with overflow check. */ -XSIZE_INLINE size_t -#if __GNUC__ >= 3 -__attribute__ ((__pure__)) -#endif +XSIZE_INLINE size_t ATTRIBUTE_PURE xsum4 (size_t size1, size_t size2, size_t size3, size_t size4) { return xsum (xsum (xsum (size1, size2), size3), size4); } /* Maximum of two sizes, with overflow check. */ -XSIZE_INLINE size_t -#if __GNUC__ >= 3 -__attribute__ ((__pure__)) -#endif +XSIZE_INLINE size_t ATTRIBUTE_PURE xmax (size_t size1, size_t size2) { /* No explicit check is needed here, because for any n: diff --git a/modules/xsize b/modules/xsize index a13eb867ff..3b2ad56681 100644 --- a/modules/xsize +++ b/modules/xsize @@ -7,6 +7,7 @@ lib/xsize.c m4/xsize.m4 Depends-on: +attribute extern-inline size_max -- 2.39.5