aboutsummaryrefslogtreecommitdiff
path: root/sim/common
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2021-05-02 11:04:58 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2021-05-02 11:04:58 -0400
commit72042732bc0a1d2e1b24df2f5a0fc70857bd1865 (patch)
tree88956eafdc96e908a342db2e3f45da8ce25ab835 /sim/common
parentf0c4dc40b2e16a876b5b61986de5014a78f76a5c (diff)
downloadgdb-72042732bc0a1d2e1b24df2f5a0fc70857bd1865.zip
gdb-72042732bc0a1d2e1b24df2f5a0fc70857bd1865.tar.gz
gdb-72042732bc0a1d2e1b24df2f5a0fc70857bd1865.tar.bz2
sim: add default cases to two switches in sim-options.c
This is the next compilation error I hit when I build all targets with Clang: /home/simark/src/binutils-gdb/sim/aarch64/../common/sim-options.c:234:12: error: no case matching constant switch condition '0' [-Werror] switch (WITH_ENVIRONMENT) ^~~~~~~~~~~~~~~~ ./config.h:215:26: note: expanded from macro 'WITH_ENVIRONMENT' #define WITH_ENVIRONMENT ALL_ENVIRONMENT ^~~~~~~~~~~~~~~ /home/simark/src/binutils-gdb/sim/aarch64/../common/sim-options.c:276:15: error: no case matching constant switch condition '0' [-Werror] switch (WITH_ALIGNMENT) ^~~~~~~~~~~~~~ /home/simark/src/binutils-gdb/sim/aarch64/../common/sim-config.h:220:24: note: expanded from macro 'WITH_ALIGNMENT' #define WITH_ALIGNMENT 0 ^ This is a little bit special because these are switches on compile-time value. But regardless, the idea is that we logically can't reach the switches if WITH_ENVIRONMENT == 0 or WITH_ALIGNMENT == 0, so the code is correct. In addition to getting rid of the compiler warning, adding default cases to these switches ensure that if we do get in an unexpected situation, it is caught. In GDB, I'd use gdb_assert_not_reached, I don't know if there is something similar in sim so I went with abort. sim/common/ChangeLog: * sim-options.c (standard_option_handler): Add default cases to switches. Change-Id: Ie237d67a201caa6b72de0d17cc815193417156b6
Diffstat (limited to 'sim/common')
-rw-r--r--sim/common/ChangeLog5
-rw-r--r--sim/common/sim-options.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 4aeae9c..fd9a5dd 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,8 @@
+2021-05-02 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * sim-options.c (standard_option_handler): Add default cases to
+ switches.
+
2021-05-02 Mike Frysinger <vapier@gentoo.org>
* callback.c (os_error): Change __attribute__((noreturn)) to
diff --git a/sim/common/sim-options.c b/sim/common/sim-options.c
index 1522cac..1efb21f 100644
--- a/sim/common/sim-options.c
+++ b/sim/common/sim-options.c
@@ -236,6 +236,7 @@ standard_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt,
case USER_ENVIRONMENT: type = "user"; break;
case VIRTUAL_ENVIRONMENT: type = "virtual"; break;
case OPERATING_ENVIRONMENT: type = "operating"; break;
+ default: abort ();
}
sim_io_eprintf (sd, "Simulator compiled for the %s environment only.\n",
type);
@@ -284,6 +285,7 @@ standard_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt,
case FORCED_ALIGNMENT:
sim_io_eprintf (sd, "Simulator compiled for forced alignment only.\n");
break;
+ default: abort ();
}
return SIM_RC_FAIL;