diff mbox series

target/m68k: Fix build Werror with gcc 8.0.1

Message ID 20180508185520.23757-1-richard.henderson@linaro.org
State Accepted
Commit 5cbc61110738accb16ff8ed1f08a32906d02790f
Headers show
Series target/m68k: Fix build Werror with gcc 8.0.1 | expand

Commit Message

Richard Henderson May 8, 2018, 6:55 p.m. UTC
Fedora 28 ships with the released gcc 8.

The Werror stems from the compiler finding a path through the second
switch via a missing default case in which src1 is uninitialized, and
not being able to prove that the missing default case is unreachable
due to the first switch.

Simplify the second switch to merge default with OS_LONG,
which returns directly.  This removes the unreachable path.

Cc: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 target/m68k/translate.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

-- 
2.17.0

Comments

Laurent Vivier May 8, 2018, 8:42 p.m. UTC | #1
Le 08/05/2018 à 20:55, Richard Henderson a écrit :
> Fedora 28 ships with the released gcc 8.

> 

> The Werror stems from the compiler finding a path through the second

> switch via a missing default case in which src1 is uninitialized, and

> not being able to prove that the missing default case is unreachable

> due to the first switch.

> 

> Simplify the second switch to merge default with OS_LONG,

> which returns directly.  This removes the unreachable path.

> 

> Cc: Laurent Vivier <laurent@vivier.eu>

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

> ---

>  target/m68k/translate.c | 5 +++--

>  1 file changed, 3 insertions(+), 2 deletions(-)


Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Peter Maydell May 11, 2018, 11:06 a.m. UTC | #2
On 8 May 2018 at 21:42, Laurent Vivier <laurent@vivier.eu> wrote:
> Le 08/05/2018 à 20:55, Richard Henderson a écrit :

>> Fedora 28 ships with the released gcc 8.

>>

>> The Werror stems from the compiler finding a path through the second

>> switch via a missing default case in which src1 is uninitialized, and

>> not being able to prove that the missing default case is unreachable

>> due to the first switch.

>>

>> Simplify the second switch to merge default with OS_LONG,

>> which returns directly.  This removes the unreachable path.

>>

>> Cc: Laurent Vivier <laurent@vivier.eu>

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

>> ---

>>  target/m68k/translate.c | 5 +++--

>>  1 file changed, 3 insertions(+), 2 deletions(-)

>

> Reviewed-by: Laurent Vivier <laurent@vivier.eu>


Applied to master as a buildfix, thanks.

-- PMM
diff mbox series

Patch

diff --git a/target/m68k/translate.c b/target/m68k/translate.c
index e407ba2db3..44a0ac4e2e 100644
--- a/target/m68k/translate.c
+++ b/target/m68k/translate.c
@@ -2297,7 +2297,7 @@  DISAS_INSN(arith_im)
         im = tcg_const_i32(read_im32(env, s));
         break;
     default:
-       abort();
+        g_assert_not_reached();
     }
 
     if (with_SR) {
@@ -2317,7 +2317,8 @@  DISAS_INSN(arith_im)
             }
             src1 = gen_get_sr(s);
             break;
-        case OS_LONG:
+        default:
+            /* OS_LONG; others already g_assert_not_reached.  */
             disas_undef(env, s, insn);
             return;
         }