[Qemu-devel] [PATCH for 2.12] target/i386: Fix compiler warnings

Stefan Weil posted 1 patch 6 years, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20171113064845.29142-1-sw@weilnetz.de
Test checkpatch passed
Test docker passed
Test ppc passed
Test s390x passed
target/i386/translate.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
[Qemu-devel] [PATCH for 2.12] target/i386: Fix compiler warnings
Posted by Stefan Weil 6 years, 5 months ago
These gcc warnings are fixed:

target/i386/translate.c:4461:12: warning:
 variable ‘prefixes’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
target/i386/translate.c:4466:9: warning:
 variable ‘rex_w’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
target/i386/translate.c:4466:16: warning:
 variable ‘rex_r’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]

Tested with x86_64-w64-mingw32-gcc from Debian stretch.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
 target/i386/translate.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/target/i386/translate.c b/target/i386/translate.c
index 088a9d9766..f410938244 100644
--- a/target/i386/translate.c
+++ b/target/i386/translate.c
@@ -4467,10 +4467,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
     target_ulong pc_start = s->base.pc_next;
 
     s->pc_start = s->pc = pc_start;
-    prefixes = 0;
     s->override = -1;
-    rex_w = -1;
-    rex_r = 0;
 #ifdef TARGET_X86_64
     s->rex_x = 0;
     s->rex_b = 0;
@@ -4484,6 +4481,10 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
         return s->pc;
     }
 
+    prefixes = 0;
+    rex_w = -1;
+    rex_r = 0;
+
  next_byte:
     b = x86_ldub_code(env, s);
     /* Collect prefixes.  */
-- 
2.11.0


Re: [Qemu-devel] [PATCH for 2.12] target/i386: Fix compiler warnings
Posted by Paolo Bonzini 6 years, 4 months ago
On 13/11/2017 07:48, Stefan Weil wrote:
> These gcc warnings are fixed:
> 
> target/i386/translate.c:4461:12: warning:
>  variable ‘prefixes’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
> target/i386/translate.c:4466:9: warning:
>  variable ‘rex_w’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
> target/i386/translate.c:4466:16: warning:
>  variable ‘rex_r’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
> 
> Tested with x86_64-w64-mingw32-gcc from Debian stretch.
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  target/i386/translate.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/target/i386/translate.c b/target/i386/translate.c
> index 088a9d9766..f410938244 100644
> --- a/target/i386/translate.c
> +++ b/target/i386/translate.c
> @@ -4467,10 +4467,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
>      target_ulong pc_start = s->base.pc_next;
>  
>      s->pc_start = s->pc = pc_start;
> -    prefixes = 0;
>      s->override = -1;
> -    rex_w = -1;
> -    rex_r = 0;
>  #ifdef TARGET_X86_64
>      s->rex_x = 0;
>      s->rex_b = 0;
> @@ -4484,6 +4481,10 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
>          return s->pc;
>      }
>  
> +    prefixes = 0;
> +    rex_w = -1;
> +    rex_r = 0;
> +
>   next_byte:
>      b = x86_ldub_code(env, s);
>      /* Collect prefixes.  */
> 

Queued, thanks.

Paolo