qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 5/5] s390x/tcg: fix format-truncation warning


From: Thomas Huth
Subject: Re: [PATCH 5/5] s390x/tcg: fix format-truncation warning
Date: Mon, 28 Mar 2022 12:57:22 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.0

On 28/03/2022 12.22, Marc-André Lureau wrote:
Hi

On Mon, Mar 28, 2022 at 12:59 PM Thomas Huth <thuth@redhat.com> wrote:

On 28/03/2022 10.47, marcandre.lureau@redhat.com wrote:
From: Marc-André Lureau <marcandre.lureau@redhat.com>

../target/s390x/tcg/translate.c: In function ‘s390x_translate_init’:
../target/s390x/tcg/translate.c:224:64: error: ‘%d’ directive output may be 
truncated writing between 1 and 11 bytes into a region of size 3 
[-Werror=format-truncation=]
    224 |         snprintf(cpu_reg_names[i], sizeof(cpu_reg_names[0]), "r%d", 
i);
        |                                                                ^~

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
   target/s390x/tcg/translate.c | 4 ++--
   1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index 5acfc0ff9b4e..a082342a0424 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -199,7 +199,7 @@ static TCGv_i64 regs[16];

   void s390x_translate_init(void)
   {
-    int i;
+    size_t i;

       psw_addr = tcg_global_mem_new_i64(cpu_env,
                                         offsetof(CPUS390XState, psw.addr),
@@ -221,7 +221,7 @@ void s390x_translate_init(void)
                                      "cc_vr");

       for (i = 0; i < 16; i++) {
-        snprintf(cpu_reg_names[i], sizeof(cpu_reg_names[0]), "r%d", i);
+        snprintf(cpu_reg_names[i], sizeof(cpu_reg_names[0]), "r%zu", i);

The compiler is *really* too stupid to see that i is in the range between 0
and 16 here??? ... that rather sounds like a compiler bug to me than
something that we should work-around in the QEMU source code. Considering
that you're using a x.0 release of GCC, please file a bug against GCC
instead. If they refuse to fix it for GCC 12.1 or later, we can revisit this
patch, but currently, I really think this should be fixed in GCC instead.


I opened: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105080

Although I think the "workaround" is simple and would avoid users &
distributions having to add --disable-werror, and possibly miss other
issues.

But I really dislike adding such noise to the history (it spoils "git blame" for example) if it is not really necessary. In this case, it also rather helps to show distros that they are shipping a buggy compiler and they should fix their compiler instead before it hits their users. So I think it would be rather bad to fix this in QEMU now.

 Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]