qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Pierre Muller <pierre@freepascal.org>
To: qemu-devel@nongnu.org
Subject: Re: [PATCH v3 15/17] linux-user/strace: Fix print_syscall_err
Date: Thu, 17 Mar 2022 11:43:13 +0100	[thread overview]
Message-ID: <fffcbadf-aa26-6e53-19b6-e3dcee825a55@freepascal.org> (raw)
In-Reply-To: <20220316055840.727571-16-richard.henderson@linaro.org>

  Hello Richard,

   being mainly a Pascal programmer,
I always jump when I see such constructs:
   You change the type of the print_syscall_err parameter to abi_ulong,
with is an unsigned type as the name suggests,
and after you compare it to a signed constant -4096.

   This would never work in Pascal, but this is of course C code.

   Nevertheless, I tried:

muller@gcc140:~/pas/check$ cat ./test-unsigned-int.c
#include <stdio.h>

int test_is_error (unsigned int u)
{
   return (u > -4096);
}

int main ()
{
   unsigned int v;
   int error_count = 0;
   v = (unsigned int) - 3000;
   if (test_is_error(v) != 0)
     printf("v=-3000 accepted\n");
   else
     error_count++;
   v = (unsigned int) - 5000;
   if (test_is_error(v) == 0)
     printf("v=-5000 rejected\n");
   else
     error_count++;
   v = (unsigned int) 0xfffffff0;
   if (test_is_error(v) != 0)
     printf("v=%d accepted\n",v);
   else
     error_count++;
   if (test_is_error(0xffffff00) != 0)
     printf("v=%d accepted\n",0xffffff00);
   else
     error_count++;
   return error_count;
}


muller@gcc140:~/pas/check$ gcc  -W -o test-unsigned-int test-unsigned-int.c
test-unsigned-int.c: In function ‘test_is_error’:
test-unsigned-int.c:5:13: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
     5 |   return (u > -4096);
       |             ^

The results are OK (both for 32 and 64 bit executables),
but is there a cleaner way, which does not generate a warning, to write this?

Adding an explicit typecast to -4096 seems sufficient to silence that warning.


Pierre Muller


Le 16/03/2022 à 06:58, Richard Henderson a écrit :
> Errors are not all negative numbers, but only the top 4k.
> 
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   linux-user/strace.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/linux-user/strace.c b/linux-user/strace.c
> index 2cdbf030ba..f235118fb6 100644
> --- a/linux-user/strace.c
> +++ b/linux-user/strace.c
> @@ -684,12 +684,12 @@ print_ipc(void *cpu_env, const struct syscallname *name,
>    */
>   
>   static bool
> -print_syscall_err(abi_long ret)
> +print_syscall_err(abi_ulong ret)
>   {
>       const char *errstr;
>   
>       qemu_log(" = ");
> -    if (ret < 0) {
> +    if (ret > -4096) {
>           errstr = target_strerror(-ret);
>           if (errstr) {
>               qemu_log("-1 errno=%d (%s)", (int)-ret, errstr);


  reply	other threads:[~2022-03-17 10:45 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-16  5:58 [PATCH v3 00/17] target/m68k: Conditional traps + trap cleanup Richard Henderson
2022-03-16  5:58 ` [PATCH v3 01/17] target/m68k: Raise the TRAPn exception with the correct pc Richard Henderson
2022-03-16  5:58 ` [PATCH v3 02/17] target/m68k: Switch over exception type in m68k_interrupt_all Richard Henderson
2022-03-16  5:58 ` [PATCH v3 03/17] target/m68k: Fix coding style " Richard Henderson
2022-03-16  5:58 ` [PATCH v3 04/17] linux-user/m68k: Handle EXCP_TRAP1 through EXCP_TRAP15 Richard Henderson
2022-03-16  5:58 ` [PATCH v3 05/17] target/m68k: Remove retaddr in m68k_interrupt_all Richard Henderson
2022-03-16  5:58 ` [PATCH v3 06/17] target/m68k: Fix address argument for EXCP_CHK Richard Henderson
2022-03-16  5:58 ` [PATCH v3 07/17] target/m68k: Fix pc, c flag, and address argument for EXCP_DIV0 Richard Henderson
2022-03-16  5:58 ` [PATCH v3 08/17] target/m68k: Fix address argument for EXCP_TRACE Richard Henderson
2022-03-16  5:58 ` [PATCH v3 09/17] target/m68k: Fix stack frame for EXCP_ILLEGAL Richard Henderson
2022-03-16  5:58 ` [PATCH v3 10/17] target/m68k: Implement TRAPcc Richard Henderson
2022-03-16  5:58 ` [PATCH v3 11/17] target/m68k: Implement TPF in terms of TRAPcc Richard Henderson
2022-03-16  5:58 ` [PATCH v3 12/17] target/m68k: Implement TRAPV Richard Henderson
2022-03-16  5:58 ` [PATCH v3 13/17] target/m68k: Implement FTRAPcc Richard Henderson
2022-03-16  5:58 ` [PATCH v3 14/17] tests/tcg/m68k: Add trap.c Richard Henderson
2022-03-16  5:58 ` [PATCH v3 15/17] linux-user/strace: Fix print_syscall_err Richard Henderson
2022-03-17 10:43   ` Pierre Muller [this message]
2022-03-16  5:58 ` [PATCH v3 16/17] linux-user/strace: Adjust get_thread_area for m68k Richard Henderson
2022-03-16  5:58 ` [PATCH v3 17/17] target/m68k: Mark helper_raise_exception as noreturn Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fffcbadf-aa26-6e53-19b6-e3dcee825a55@freepascal.org \
    --to=pierre@freepascal.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 NNTP newsgroup(s).