diff mbox series

[v2] linux-user: Fix trivial build error on loongarch64 hosts

Message ID 20220104215027.2180972-1-f4bug@amsat.org (mailing list archive)
State New, archived
Headers show
Series [v2] linux-user: Fix trivial build error on loongarch64 hosts | expand

Commit Message

Philippe Mathieu-Daudé Jan. 4, 2022, 9:50 p.m. UTC
When building using GCC 8.3.0 on loongarch64 (Loongnix) we get:

  In file included from ../linux-user/signal.c:33:
  ../linux-user/host/loongarch64/host-signal.h: In function ‘host_signal_write’:
  ../linux-user/host/loongarch64/host-signal.h:57:9: error: a label can only be part of a statement and a declaration is not a statement
         uint32_t sel = (insn >> 15) & 0b11111111111;
         ^~~~~~~~

We don't use the 'sel' variable more than once, so drop it.

Meson output for the record:

  Host machine cpu family: loongarch64
  Host machine cpu: loongarch64
  C compiler for the host machine: cc (gcc 8.3.0 "cc (Loongnix 8.3.0-6.lnd.vec.27) 8.3.0")
  C linker for the host machine: cc ld.bfd 2.31.1-system

Fixes: ad812c3bd65 ("linux-user: Implement CPU-specific signal handler for loongarch64 hosts")
Reported-by: Song Gao <gaosong@loongson.cn>
Suggested-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: WANG Xuerui <git@xen0n.name>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/host/loongarch64/host-signal.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Richard Henderson Jan. 4, 2022, 10:13 p.m. UTC | #1
On 1/4/22 1:50 PM, Philippe Mathieu-Daudé wrote:
> When building using GCC 8.3.0 on loongarch64 (Loongnix) we get:
> 
>    In file included from ../linux-user/signal.c:33:
>    ../linux-user/host/loongarch64/host-signal.h: In function ‘host_signal_write’:
>    ../linux-user/host/loongarch64/host-signal.h:57:9: error: a label can only be part of a statement and a declaration is not a statement
>           uint32_t sel = (insn >> 15) & 0b11111111111;
>           ^~~~~~~~
> 
> We don't use the 'sel' variable more than once, so drop it.
> 
> Meson output for the record:
> 
>    Host machine cpu family: loongarch64
>    Host machine cpu: loongarch64
>    C compiler for the host machine: cc (gcc 8.3.0 "cc (Loongnix 8.3.0-6.lnd.vec.27) 8.3.0")
>    C linker for the host machine: cc ld.bfd 2.31.1-system
> 
> Fixes: ad812c3bd65 ("linux-user: Implement CPU-specific signal handler for loongarch64 hosts")
> Reported-by: Song Gao<gaosong@loongson.cn>
> Suggested-by: Song Gao<gaosong@loongson.cn>
> Reviewed-by: WANG Xuerui<git@xen0n.name>
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
>   linux-user/host/loongarch64/host-signal.h | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Richard Henderson Jan. 4, 2022, 11:30 p.m. UTC | #2
On 1/4/22 1:50 PM, Philippe Mathieu-Daudé wrote:
> When building using GCC 8.3.0 on loongarch64 (Loongnix) we get:
> 
>    In file included from ../linux-user/signal.c:33:
>    ../linux-user/host/loongarch64/host-signal.h: In function ‘host_signal_write’:
>    ../linux-user/host/loongarch64/host-signal.h:57:9: error: a label can only be part of a statement and a declaration is not a statement
>           uint32_t sel = (insn >> 15) & 0b11111111111;
>           ^~~~~~~~
> 
> We don't use the 'sel' variable more than once, so drop it.
> 
> Meson output for the record:
> 
>    Host machine cpu family: loongarch64
>    Host machine cpu: loongarch64
>    C compiler for the host machine: cc (gcc 8.3.0 "cc (Loongnix 8.3.0-6.lnd.vec.27) 8.3.0")
>    C linker for the host machine: cc ld.bfd 2.31.1-system
> 
> Fixes: ad812c3bd65 ("linux-user: Implement CPU-specific signal handler for loongarch64 hosts")
> Reported-by: Song Gao <gaosong@loongson.cn>
> Suggested-by: Song Gao <gaosong@loongson.cn>
> Reviewed-by: WANG Xuerui <git@xen0n.name>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

As a build fix, I'll pop this into tcg-next.


r~
diff mbox series

Patch

diff --git a/linux-user/host/loongarch64/host-signal.h b/linux-user/host/loongarch64/host-signal.h
index 05e2c823717..7effa242515 100644
--- a/linux-user/host/loongarch64/host-signal.h
+++ b/linux-user/host/loongarch64/host-signal.h
@@ -54,9 +54,7 @@  static inline bool host_signal_write(siginfo_t *info, ucontext_t *uc)
         }
         break;
     case 0b001110: /* indexed, atomic, bounds-checking memory operations */
-        uint32_t sel = (insn >> 15) & 0b11111111111;
-
-        switch (sel) {
+        switch ((insn >> 15) & 0b11111111111) {
         case 0b00000100000: /* stx.b */
         case 0b00000101000: /* stx.h */
         case 0b00000110000: /* stx.w */