summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2024-04-18 13:20:02 +0200
committerAlejandro Colomar <alx@kernel.org>2024-04-18 13:33:08 +0200
commit853edfd5760a42793dda79f9ac415ea74d099a0b (patch)
tree184ffacaa8dfd1c8fe6471accc90d8e05678cb2f
parent612dbb18b5cd873627cdf34f69d0a016df4a7b36 (diff)
include/a2i/a2i_func.h: Remove helper macros
They were adding some complexity that I don't like. Simplify. Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--include/a2i/a2i_func.h40
1 files changed, 13 insertions, 27 deletions
diff --git a/include/a2i/a2i_func.h b/include/a2i/a2i_func.h
index 0ee9e10..afdb942 100644
--- a/include/a2i/a2i_func.h
+++ b/include/a2i/a2i_func.h
@@ -14,23 +14,6 @@
#include <a2i/strtoi.h>
-#define a2i_a2S_c(n, s, endp, ...) \
-({ \
- _Pragma("GCC diagnostic push"); \
- _Pragma("GCC diagnostic ignored \"-Wcast-qual\""); \
- a2i_a2S_nc(n, s, (char **a2i_nullable) endp, __VA_ARGS__); \
- _Pragma("GCC diagnostic pop"); \
-})
-
-#define a2i_a2U_c(n, s, endp, ...) \
-({ \
- _Pragma("GCC diagnostic push"); \
- _Pragma("GCC diagnostic ignored \"-Wcast-qual\""); \
- a2i_a2U_nc(n, s, (char **a2i_nullable) endp, __VA_ARGS__); \
- _Pragma("GCC diagnostic pop"); \
-})
-
-
#define a2i_a2S_nc(n, s, endp, base, min, max) \
({ \
int status_; \
@@ -88,12 +71,14 @@ A2I_A2I_PROTOTYPES(a2ull, unsigned long long);
# pragma clang diagnostic ignored "-Wimplicit-int-conversion"
# pragma clang diagnostic ignored "-Wshorten-64-to-32"
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-qual"
a2i_inline int
a2shh_c(signed char *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
signed char min, signed char max)
{
- return a2i_a2S_c(n, s, endp, base, min, max);
+ return a2i_a2S_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -102,7 +87,7 @@ a2sh_c(short *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
short min, short max)
{
- return a2i_a2S_c(n, s, endp, base, min, max);
+ return a2i_a2S_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -111,7 +96,7 @@ a2si_c(int *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
int min, int max)
{
- return a2i_a2S_c(n, s, endp, base, min, max);
+ return a2i_a2S_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -120,7 +105,7 @@ a2sl_c(long *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
long min, long max)
{
- return a2i_a2S_c(n, s, endp, base, min, max);
+ return a2i_a2S_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -129,7 +114,7 @@ a2sll_c(long long *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
long long min, long long max)
{
- return a2i_a2S_c(n, s, endp, base, min, max);
+ return a2i_a2S_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -138,7 +123,7 @@ a2uhh_c(unsigned char *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
unsigned char min, unsigned char max)
{
- return a2i_a2U_c(n, s, endp, base, min, max);
+ return a2i_a2U_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -147,7 +132,7 @@ a2uh_c(unsigned short *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
unsigned short min, unsigned short max)
{
- return a2i_a2U_c(n, s, endp, base, min, max);
+ return a2i_a2U_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -156,7 +141,7 @@ a2ui_c(unsigned int *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
unsigned int min, unsigned int max)
{
- return a2i_a2U_c(n, s, endp, base, min, max);
+ return a2i_a2U_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -165,7 +150,7 @@ a2ul_c(unsigned long *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
unsigned long min, unsigned long max)
{
- return a2i_a2U_c(n, s, endp, base, min, max);
+ return a2i_a2U_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
@@ -174,8 +159,9 @@ a2ull_c(unsigned long long *restrict n, const char *s,
const char **a2i_nullable restrict endp, int base,
unsigned long long min, unsigned long long max)
{
- return a2i_a2U_c(n, s, endp, base, min, max);
+ return a2i_a2U_nc(n, s, (char **a2i_nullable) endp, base, min, max);
}
+#pragma GCC diagnostic pop // -Wcast-qual
a2i_inline int