mirror of https://gerrit.osmocom.org/libosmocore
coding: Refactor function to avoid gcc false positive warn
""" /libosmocore/src/coding/gsm0503_coding.c: In function 'osmo_conv_decode_ber_punctured': /libosmocore/src/coding/gsm0503_coding.c:563:31: error: 'coded_len' may be used uninitialized [-Werror=maybe-uninitialized] 563 | *n_bits_total = coded_len; | ~~~~~~~~~~~~~~^~~~~~~~~~~ /libosmocore/src/coding/gsm0503_coding.c:541:21: note: 'coded_len' was declared here 541 | int res, i, coded_len; | ^~~~~~~~~ """ This error is really a false positive. However, it is true that the code used to be a bit more complex than required, since the 2 later conditions could be inside the first one. Let's simply do early termination to simplify the function, and get rid of the gcc warning. Change-Id: I31ebf0c4be61daf6395d9a9fac05c7fdceb8bcb9
This commit is contained in:
parent
8f25fd27ed
commit
d2737e6027
|
@ -543,10 +543,11 @@ static int osmo_conv_decode_ber_punctured(const struct osmo_conv_code *code,
|
|||
|
||||
res = osmo_conv_decode(code, input, output);
|
||||
|
||||
if (n_bits_total || n_errors) {
|
||||
coded_len = osmo_conv_encode(code, output, recoded);
|
||||
OSMO_ASSERT(sizeof(recoded) / sizeof(recoded[0]) >= coded_len);
|
||||
}
|
||||
if (!n_bits_total && !n_errors)
|
||||
return res;
|
||||
|
||||
coded_len = osmo_conv_encode(code, output, recoded);
|
||||
OSMO_ASSERT(sizeof(recoded) / sizeof(recoded[0]) >= coded_len);
|
||||
|
||||
/* Count bit errors */
|
||||
if (n_errors) {
|
||||
|
|
Loading…
Reference in New Issue