From: Arran Cudbard-Bell Date: Thu, 10 Feb 2022 18:42:26 +0000 (-0500) Subject: Define the set of case statements for fr_type_signed too X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b3ad4ddf6afcb38d4412515c4b5f2738c3cb552;p=thirdparty%2Ffreeradius-server.git Define the set of case statements for fr_type_signed too --- diff --git a/src/lib/util/types.c b/src/lib/util/types.c index be5d68fb70a..72f080e7404 100644 --- a/src/lib/util/types.c +++ b/src/lib/util/types.c @@ -90,15 +90,7 @@ size_t fr_type_table_len = NUM_ELEMENTS(fr_type_table); bool const fr_type_integer_except_bool[FR_TYPE_MAX + 1] = FR_TYPE_INTEGER_EXCEPT_BOOL_DEF(ARRAY_BEG, ARRAY_MID, ARRAY_END); bool const fr_type_integer[FR_TYPE_MAX + 1] = FR_TYPE_INTEGER_DEF(ARRAY_BEG, ARRAY_MID, ARRAY_END); bool const fr_type_numeric[FR_TYPE_MAX + 1] = FR_TYPE_NUMERIC_DEF(ARRAY_BEG, ARRAY_MID, ARRAY_END); - -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wgnu-designator" -#endif -bool const fr_type_signed[FR_TYPE_MAX + 1] = { [ FR_TYPE_INT8 ... FR_TYPE_INT64] = true, - [FR_TYPE_TIME_DELTA] = true, - [FR_TYPE_FLOAT64] = true, - [FR_TYPE_FLOAT32] = true -}; +bool const fr_type_signed[FR_TYPE_MAX + 1] = FR_TYPE_SIGNED_DEF(ARRAY_BEG, ARRAY_MID, ARRAY_END); bool const fr_type_ip[FR_TYPE_MAX + 1] = FR_TYPE_IP_DEF(ARRAY_BEG, ARRAY_MID, ARRAY_END); diff --git a/src/lib/util/types.h b/src/lib/util/types.h index 7412df3233f..d9d48f7541d 100644 --- a/src/lib/util/types.h +++ b/src/lib/util/types.h @@ -121,6 +121,21 @@ typedef enum { _beg(FR_TYPE_BOOL) \ FR_TYPE_INTEGER_EXCEPT_BOOL_DEF(_mid, _mid, _end) +/** Signed values + * + * - Int8, 16, 32, 64 + * - Deltas + * - Floats + */ +#define FR_TYPE_SIGNED_DEF(_beg, _mid, _end) \ + _beg(FR_TYPE_INT8) \ + _mid(FR_TYPE_INT16) \ + _mid(FR_TYPE_INT32) \ + _mid(FR_TYPE_INT64) \ + _mid(FR_TYPE_TIME_DELTA) \ + _mid(FR_TYPE_FLOAT32) \ + _end(FR_TYPE_FLOAT64) + /** Naturally numeric types * * - Integers @@ -253,6 +268,7 @@ typedef enum { #define FR_TYPE_INTEGER_EXCEPT_BOOL FR_TYPE_INTEGER_EXCEPT_BOOL_DEF(CASE_BEG, CASE_MID, CASE_END) #define FR_TYPE_INTEGER FR_TYPE_INTEGER_DEF(CASE_BEG, CASE_MID, CASE_END) +#define FR_TYPE_SIGNED FR_TYPE_SIGNED_DEF(CASE_BEG, CASE_MID, CASE_END) #define FR_TYPE_NUMERIC FR_TYPE_NUMERIC_DEF(CASE_BEG, CASE_MID, CASE_END) #define FR_TYPE_IP FR_TYPE_IP_DEF(CASE_BEG, CASE_MID, CASE_END)