public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] gas: fix building tc-bpf.c on s390x
@ 2023-05-04  6:38 Andreas Krebbel
  0 siblings, 0 replies; only message in thread
From: Andreas Krebbel @ 2023-05-04  6:38 UTC (permalink / raw)
  To: bfd-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c9819077700c5fc440981c3b14e21225f4c14d01

commit c9819077700c5fc440981c3b14e21225f4c14d01
Author: Ilya Leoshkevich <iii@linux.ibm.com>
Date:   Thu May 4 08:35:30 2023 +0200

    gas: fix building tc-bpf.c on s390x
    
    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)
              |              ^~
    
    Change its type to int, like in the other similar code.
    
    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.  Add an assertion to
    build_bpf_endianness() in order to catch potential bugs.

Diff:
---
 gas/config/tc-bpf.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c
index 171fc682806..3b86f9c89cb 100644
--- a/gas/config/tc-bpf.c
+++ b/gas/config/tc-bpf.c
@@ -730,6 +730,8 @@ build_bpf_endianness (char *dst, enum bpf_token_type endianness)
       || endianness == BPF_LE32
       || endianness == BPF_LE64)
     be = 0;
+  else
+    gas_assert (endianness == BPF_BE16 || endianness == BPF_BE32 || endianness == BPF_BE64);
 
   bpf_insn = xasprintf ("%s %%%s,%s", be ? "endbe" : "endle",
 			dst, be ? size[endianness - BPF_BE16] : size[endianness - BPF_LE16]);
@@ -885,7 +887,7 @@ get_token (const char **insn, char *token, size_t *tlen)
     } while (0)
 
   const char *str = *insn;
-  char ch, ch2 = 0;
+  int ch, ch2 = 0;
   enum bpf_token_type ttype = BPF_UNKNOWN;
   size_t len = 0;
   const char *expr = NULL;
@@ -1362,7 +1364,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.  */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-05-04  6:38 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-04  6:38 [binutils-gdb] gas: fix building tc-bpf.c on s390x Andreas Krebbel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).