]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Define the set of case statements for fr_type_signed too
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 10 Feb 2022 18:42:26 +0000 (13:42 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 10 Feb 2022 18:42:26 +0000 (13:42 -0500)
src/lib/util/types.c
src/lib/util/types.h

index be5d68fb70aa2f7a7ee5f6acc71da6426226694e..72f080e740433f4109df4c4d7b359b5cc66cf4ff 100644 (file)
@@ -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);
 
index 7412df3233f41cd6637efffd9735d6c6d5cd1dbc..d9d48f7541d3a5e7ed8262aed3136e10cd7dc8dc 100644 (file)
@@ -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)