sim: cgen: add asserts to fix unused engine warnings
If the user passed in values outside the range of [0, MAX_NR_PROCESSORS), it would cause the code to access out-of-bind engine function pointers. Add some asserts to catch that and to fix the related compiler warnings.
This commit is contained in:
parent
a7ffa88dc6
commit
b69bd9e723
2 changed files with 8 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
|||
2021-06-27 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* cgen-run.c (engine_run_n): Assert cpu arguments are valid.
|
||||
|
||||
2021-06-27 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* cgen-trace.h (cgen_trace_printf): Add ATTRIBUTE_PRINTF_2.
|
||||
|
|
|
@ -231,6 +231,9 @@ engine_run_n (SIM_DESC sd, int next_cpu_nr, int nr_cpus, int max_insns, int fast
|
|||
int i;
|
||||
ENGINE_FN *engine_fns[MAX_NR_PROCESSORS];
|
||||
|
||||
SIM_ASSERT (nr_cpus <= MAX_NR_PROCESSORS);
|
||||
SIM_ASSERT (next_cpu_nr >= 0 && next_cpu_nr < nr_cpus);
|
||||
|
||||
for (i = 0; i < nr_cpus; ++i)
|
||||
{
|
||||
SIM_CPU *cpu = STATE_CPU (sd, i);
|
||||
|
@ -244,7 +247,7 @@ engine_run_n (SIM_DESC sd, int next_cpu_nr, int nr_cpus, int max_insns, int fast
|
|||
SIM_ENGINE_PREFIX_HOOK (sd);
|
||||
|
||||
/* FIXME: proper cycling of all of them, blah blah blah. */
|
||||
while (next_cpu_nr != nr_cpus)
|
||||
while (next_cpu_nr < nr_cpus)
|
||||
{
|
||||
SIM_CPU *cpu = STATE_CPU (sd, next_cpu_nr);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue