From: Arran Cudbard-Bell Date: Sat, 30 Oct 2021 19:03:20 +0000 (-0400) Subject: Slightly less hacky way of quieting GCC X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff8869bda0b3f69d2655ccc9e577a2d4c267bc5e;p=thirdparty%2Ffreeradius-server.git Slightly less hacky way of quieting GCC --- diff --git a/src/lib/util/base_16_32_64_tests.c b/src/lib/util/base_16_32_64_tests.c index 182471a5e2a..cd68b5a770f 100644 --- a/src/lib/util/base_16_32_64_tests.c +++ b/src/lib/util/base_16_32_64_tests.c @@ -60,7 +60,7 @@ static const test_vector base64_vectors[] = { static void test_base16_encode(void) { - char buffer[17] = { '\0' }; + char buffer[17]; fr_sbuff_t out; size_t i; @@ -104,7 +104,7 @@ static void test_base16_decode(void) static void test_base32_encode(void) { - char buffer[17] = { '\0' }; + char buffer[17]; fr_sbuff_t out; size_t i; @@ -151,7 +151,7 @@ static void test_base32_decode(void) static void test_base32_hex_encode(void) { - char buffer[17] = { '\0' }; + char buffer[17]; fr_sbuff_t out; size_t i; @@ -198,7 +198,7 @@ static void test_base32_hex_decode(void) static void test_base64_encode(void) { - char buffer[17] = { '\0' }; + char buffer[17]; fr_sbuff_t out; size_t i; diff --git a/src/lib/util/log.c b/src/lib/util/log.c index 12f62dbf3ab..f91f352e6f2 100644 --- a/src/lib/util/log.c +++ b/src/lib/util/log.c @@ -189,8 +189,6 @@ void fr_log_fd_event(UNUSED fr_event_list_t *el, int fd, UNUSED int flags, void return; } - buffer[0] = '\0'; /* Fix GCC11 bug where it flags the buffer as uninitialised for no reason */ - fr_sbuff_init_out(&sbuff, buffer, sizeof(buffer)); fr_sbuff_marker(&m_start, &sbuff); fr_sbuff_marker(&m_end, &sbuff); diff --git a/src/lib/util/pair_print.c b/src/lib/util/pair_print.c index fb86ef24144..1b7bb5cb3f4 100644 --- a/src/lib/util/pair_print.c +++ b/src/lib/util/pair_print.c @@ -201,8 +201,6 @@ void _fr_pair_list_log(fr_log_t const *log, int lvl, fr_pair_t *parent, fr_pair_ fr_sbuff_t sbuff; char buffer[1024]; - buffer[0] = '\0'; /* Fix GCC11 bug where it flags the buffer as uninitialised for no reason */ - fr_sbuff_init_out(&sbuff, buffer, sizeof(buffer)); fr_pair_list_log_sbuff(log, lvl, parent, list, file, line, &sbuff); @@ -225,8 +223,6 @@ void fr_pair_debug(fr_pair_t const *pair) fr_sbuff_t sbuff; char buffer[1024]; - buffer[0] = '\0'; /* Fix GCC11 bug where it flags the buffer as uninitialised for no reason */ - fr_sbuff_init_out(&sbuff, buffer, sizeof(buffer)); fr_pair_print(&sbuff, NULL, pair); diff --git a/src/lib/util/sbuff.h b/src/lib/util/sbuff.h index 5be27d94783..6622bf2bee8 100644 --- a/src/lib/util/sbuff.h +++ b/src/lib/util/sbuff.h @@ -579,7 +579,7 @@ static inline void fr_sbuff_terminate(fr_sbuff_t *sbuff) *sbuff->p = '\0'; } -static inline void _fr_sbuff_init(fr_sbuff_t *out, char const *start, char const *end, bool is_const, bool nul_term) +static inline void _fr_sbuff_init(fr_sbuff_t *out, UNUSED char unused, char const *start, char const *end, bool is_const) { if (unlikely(end < start)) end = start; /* Could be an assert? */ @@ -590,8 +590,6 @@ static inline void _fr_sbuff_init(fr_sbuff_t *out, char const *start, char const .end_i = end, .is_const = is_const }; - - if (nul_term) *out->start = '\0'; } /** Initialise an sbuff around a stack allocated buffer for printing @@ -605,6 +603,7 @@ static inline void _fr_sbuff_init(fr_sbuff_t *out, char const *start, char const */ #define fr_sbuff_init_out(_out, _start, _len_or_end) \ _fr_sbuff_init(_out, _start, \ +*(_start) = '\0' /* Prevents GCC complaining about uninitialised buffers */, \ _Generic((_len_or_end), \ size_t : (char const *)(_start) + ((size_t)(_len_or_end) - 1), \ long : (char const *)(_start) + ((size_t)(_len_or_end) - 1), \ @@ -612,7 +611,7 @@ _Generic((_len_or_end), \ char * : (char const *)(_len_or_end), \ char const * : (char const *)(_len_or_end) \ ), \ -IS_CONST(char *, _start), true) +IS_CONST(char *, _start)) /** Initialise an sbuff around a stack allocated buffer for parsing * @@ -623,6 +622,7 @@ IS_CONST(char *, _start), true) */ #define fr_sbuff_init_in(_out, _start, _len_or_end) \ _fr_sbuff_init(_out, _start, \ +'\0', \ _Generic((_len_or_end), \ size_t : (char const *)(_start) + (size_t)(_len_or_end), \ long : (char const *)(_start) + (size_t)(_len_or_end), \ @@ -630,7 +630,7 @@ _Generic((_len_or_end), \ char * : (char const *)(_len_or_end), \ char const * : (char const *)(_len_or_end) \ ), \ -IS_CONST(char *, _start), false) +IS_CONST(char *, _start)) /** Initialise a special sbuff which automatically reads in more data as the buffer is exhausted *