diff options
author | Alejandro Colomar <alx@kernel.org> | 2024-04-18 13:20:02 +0200 |
---|---|---|
committer | Alejandro Colomar <alx@kernel.org> | 2024-04-18 13:33:08 +0200 |
commit | 853edfd5760a42793dda79f9ac415ea74d099a0b (patch) | |
tree | 184ffacaa8dfd1c8fe6471accc90d8e05678cb2f | |
parent | 612dbb18b5cd873627cdf34f69d0a016df4a7b36 (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.h | 40 |
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 |