]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
sim: signal: mark signal callback funcs as noreturn since they don't return
authorMike Frysinger <vapier@gentoo.org>
Thu, 21 Dec 2023 05:38:31 +0000 (00:38 -0500)
committerMike Frysinger <vapier@gentoo.org>
Thu, 21 Dec 2023 06:59:22 +0000 (01:59 -0500)
All funcs already call other funcs that don't return.  The mips port is
the only exception because its generic exception handler can return in
the case of normal exceptions.  So while the exceptions its signal handler
triggers doesn't return, we can't express that conditional logic.  So add
some useless abort calls to make the compiler happy.

sim/common/sim-core.h
sim/cris/sim-main.h
sim/frv/sim-main.h
sim/iq2000/sim-main.h
sim/lm32/sim-main.h
sim/m32r/sim-main.h
sim/m4/sim_ac_option_warnings.m4
sim/mips/interp.c
sim/mips/sim-main.h
sim/mn10300/mn10300-sim.h
sim/mn10300/sim-main.h

index 34826f76edb8c46891cd0272e022a3d107b59997..bad69876e4f63eaacf492a06b15b3fd3257b8387 100644 (file)
@@ -40,7 +40,7 @@ typedef void (SIM_CORE_SIGNAL_FN)
      (SIM_DESC sd, sim_cpu *cpu, sim_cia cia, unsigned map, int nr_bytes,
       address_word addr, transfer_type transfer, sim_core_signals sig);
 
-extern SIM_CORE_SIGNAL_FN sim_core_signal;
+extern SIM_CORE_SIGNAL_FN sim_core_signal ATTRIBUTE_NORETURN;
 
 
 /* basic types */
index abebe2bafc1f59052aba07e24ec095d2bab66d6b..8fa6ff522bcc8540098b52dd62a0d19030b0cbcf 100644 (file)
@@ -201,7 +201,7 @@ struct cris_sim_cpu {
 /* Misc.  */
 
 /* Catch address exceptions.  */
-extern SIM_CORE_SIGNAL_FN cris_core_signal;
+extern SIM_CORE_SIGNAL_FN cris_core_signal ATTRIBUTE_NORETURN;
 #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
 cris_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), \
                  (TRANSFER), (ERROR))
index f2fbcce2b21400b3bdbb375ddd62759b755d7a5e..b9f99fb3dedeb1a67fdf4cb5007392e6d17c887f 100644 (file)
@@ -102,7 +102,7 @@ struct frv_sim_cpu {
 /* Misc.  */
 
 /* Catch address exceptions.  */
-extern SIM_CORE_SIGNAL_FN frv_core_signal;
+extern SIM_CORE_SIGNAL_FN frv_core_signal ATTRIBUTE_NORETURN;
 #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
 frv_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), \
                  (TRANSFER), (ERROR))
index dcd7ed4682f89a8c52a8850870ec44f7868c15ce..82865943e3bc14c809a3184b52888e89960990e2 100644 (file)
@@ -37,7 +37,7 @@ struct iq2000_sim_cpu {
 /* Misc.  */
 
 /* Catch address exceptions.  */
-extern SIM_CORE_SIGNAL_FN iq2000_core_signal;
+extern SIM_CORE_SIGNAL_FN iq2000_core_signal ATTRIBUTE_NORETURN;
 #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
 iq2000_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), \
                  (TRANSFER), (ERROR))
index e0e967c4233b93efdb59b2650a4c64704ba52a87..c252dc8f6411d6f70ef6cd45f536bace1e33f008 100644 (file)
@@ -51,7 +51,7 @@ struct lm32_sim_cpu
 /* Misc.  */
 
 /* Catch address exceptions.  */
-extern SIM_CORE_SIGNAL_FN lm32_core_signal;
+extern SIM_CORE_SIGNAL_FN lm32_core_signal ATTRIBUTE_NORETURN;
 #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
 lm32_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), \
                  (TRANSFER), (ERROR))
index 89502f2240e384a25a12d85cfe30e942764116b6..31758a153a10864a53ab8426d6d0d2ee84a3fc11 100644 (file)
@@ -21,7 +21,7 @@
 /* Misc.  */
 
 /* Catch address exceptions.  */
-extern SIM_CORE_SIGNAL_FN m32r_core_signal;
+extern SIM_CORE_SIGNAL_FN m32r_core_signal ATTRIBUTE_NORETURN;
 #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
 m32r_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), \
                  (TRANSFER), (ERROR))
index 9f1487f93d0cc314ebcf8e2697230701c58f307e..3da1c6a2e4a8015f3dff352baaa11c0acd1c8831 100644 (file)
@@ -45,6 +45,7 @@ dnl C++ -Wno-mismatched-tags
 -Wno-error=deprecated-register
 dnl C++ -Wsuggest-override
 -Wduplicated-cond
+dnl -Wshadow=local
 dnl C++ -Wdeprecated-copy
 dnl C++ -Wdeprecated-copy-dtor
 dnl C++ -Wredundant-move
index cb650a552483ed3be9fe315b1181e85aaeab41cc..255807f6790695037ce7fbb7ac46844e037e2434 100644 (file)
@@ -2498,7 +2498,8 @@ mips_core_signal (SIM_DESC sd,
                      (unsigned long) addr, (unsigned long) ip);
       COP0_BADVADDR = addr;
       SignalExceptionDataReference();
-      break;
+      /* Shouldn't actually be reached.  */
+      abort ();
 
     case sim_core_unaligned_signal:
       sim_io_eprintf (sd, "mips-core: %d byte %s to unaligned address 0x%lx at 0x%lx\n",
@@ -2509,7 +2510,8 @@ mips_core_signal (SIM_DESC sd,
        SignalExceptionAddressLoad();
       else
        SignalExceptionAddressStore();
-      break;
+      /* Shouldn't actually be reached.  */
+      abort ();
 
     default:
       sim_engine_abort (sd, cpu, cia,
index d5a0dc81b628c15bc1e7a07f6a39aedf39aa9d68..5d358564f2816174845ab1d0dc0fef6977506562 100644 (file)
@@ -1038,7 +1038,7 @@ extern int DSPLO_REGNUM[4];
 extern int DSPHI_REGNUM[4];
 
 INLINE_SIM_MAIN (void) pending_tick (SIM_DESC sd, sim_cpu *cpu, address_word cia);
-extern SIM_CORE_SIGNAL_FN mips_core_signal;
+extern SIM_CORE_SIGNAL_FN mips_core_signal ATTRIBUTE_NORETURN;
 
 char* pr_addr (address_word addr);
 char* pr_uword64 (uword64 addr);
index 3eadc0fe178064282d79442c77b11ec7a66aee1f..493df3893e9932e51d480e75e2b165f0a7d3a800 100644 (file)
@@ -196,7 +196,8 @@ INLINE_SIM_MAIN (void) genericOr (uint32_t source, uint32_t destReg);
 INLINE_SIM_MAIN (void) genericXor (uint32_t source, uint32_t destReg);
 INLINE_SIM_MAIN (void) genericBtst (uint32_t leftOpnd, uint32_t rightOpnd);
 INLINE_SIM_MAIN (void) do_syscall (SIM_DESC sd);
-void program_interrupt (SIM_DESC sd, sim_cpu *cpu, sim_cia cia, SIM_SIGNAL sig);
+void program_interrupt (SIM_DESC sd, sim_cpu *cpu, sim_cia cia, SIM_SIGNAL sig)
+  ATTRIBUTE_NORETURN;
 
 void mn10300_cpu_exception_trigger(SIM_DESC sd, sim_cpu* cpu, address_word pc);
 void mn10300_cpu_exception_suspend(SIM_DESC sd, sim_cpu* cpu, int exception);
index d08b13dc531566b2f05249511967c666612f6703..b0f0d12c65122fb854380c45e9e6b041afeac1ed 100644 (file)
@@ -48,6 +48,6 @@ mn10300_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), (TRANSFER),
 #include "mn10300-sim.h"
 #endif
 
-extern SIM_CORE_SIGNAL_FN mn10300_core_signal;
+extern SIM_CORE_SIGNAL_FN mn10300_core_signal ATTRIBUTE_NORETURN;
 
 #endif