BUILD: mjson: Fix warning about unused variables
clang 15 reports unused variables in src/mjson.c:
src/mjson.c:196:21: fatal error: expected ';' at end of declaration
int __maybe_unused n = 0;
and
src/mjson.c:727:17: fatal error: variable 'n' set but not used [-Wunused-but-set-variable]
int sign = 1, n = 0;
An issue was created on the project, but it was not fixed for now:
https://github.com/cesanta/mjson/issues/51
So for now, to fix the build issue, these variables are declared as unused.
Of course, if there is any update on this library, be careful to review this
patch first to be sure it is always required.
This patch should fix the issue #1868. It be backported as far as 2.4.
diff --git a/src/mjson.c b/src/mjson.c
index 549b0d5..73b7a57 100644
--- a/src/mjson.c
+++ b/src/mjson.c
@@ -192,7 +192,7 @@
}
static int plen2(const char *s) {
- int i = 0, n = 0;
+ int i = 0, __attribute__((unused)) n = 0;
while (s[i] != '\0' && s[i] != '.' && s[i] != '[')
n++, i += s[i] == '\\' ? 2 : 1;
// printf("PLEN: s: [%s], [%.*s] => %d\n", s, i, s, n);
@@ -724,7 +724,7 @@
/* NOTE: strtod() implementation by Yasuhiro Matsumoto. */
static double mystrtod(const char *str, char **end) {
double d = 0.0;
- int sign = 1, n = 0;
+ int sign = 1, __attribute__((unused)) n = 0;
const char *p = str, *a = str;
/* decimal part */