[PATCH] gas: fix building tc-bpf.c on s390x
Ilya Leoshkevich
iii@linux.ibm.com
Thu Apr 27 12:56:07 GMT 2023
char is unsigned on s390x, so there are a lot of warnings like:
gas/config/tc-bpf.c: In function 'get_token':
gas/config/tc-bpf.c:900:14: error: comparison is always false due to limited range of data type [-Werror=type-limits]
900 | if (ch == EOF || len > MAX_TOKEN_SZ)
| ^~
Make ch explicitly signed.
There is also:
gas/config/tc-bpf.c:735:30: error: 'bpf_endianness' may be used uninitialized in this function [-Werror=maybe-uninitialized]
735 | dst, be ? size[endianness - BPF_BE16] : size[endianness - BPF_LE16]);
| ~~~~~~~~~~~^~~~~~~~~~
-Wmaybe-uninitialized doesn't seem to understand the FSM; just
initialize bpf_endianness to silence it.
---
gas/config/tc-bpf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c
index 171fc682806..adcf5edc645 100644
--- a/gas/config/tc-bpf.c
+++ b/gas/config/tc-bpf.c
@@ -885,7 +885,7 @@ get_token (const char **insn, char *token, size_t *tlen)
} while (0)
const char *str = *insn;
- char ch, ch2 = 0;
+ signed char ch, ch2 = 0;
enum bpf_token_type ttype = BPF_UNKNOWN;
size_t len = 0;
const char *expr = NULL;
@@ -1362,7 +1362,7 @@ bpf_pseudoc_to_normal_syntax (const char *str, char **errmsg)
} while (0)
enum bpf_token_type ttype;
- enum bpf_token_type bpf_endianness,
+ enum bpf_token_type bpf_endianness = BPF_UNKNOWN,
bpf_atomic_insn;
enum bpf_token_type bpf_jmp_op = BPF_JEQ; /* Arbitrary. */
enum bpf_token_type bpf_cast = BPF_CAST_U8; /* Arbitrary. */
--
2.40.0
More information about the Binutils
mailing list