sim/cgen: mask uninitialized variable warning in cgen-run.c
authorAndrew Burgess <aburgess@redhat.com>
Wed, 12 Oct 2022 10:07:24 +0000 (11:07 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Wed, 19 Oct 2022 13:32:21 +0000 (14:32 +0100)
commitcb9d1609da6e623158ba5a8cb4a2712bcea4f57f
tree3dca6e374b50714643a347533a3074cd4a1d1653
parent2b06e59de0675c2cb526af2de6803dae29703d15
sim/cgen: mask uninitialized variable warning in cgen-run.c

I see an uninitialized variable warning (with gcc 9.3.1) from
cgen-run.c, like this:

  /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c: In function ‘sim_resume’:
  /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c:259:5: warning: ‘engine_fns$’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    259 |    (* engine_fns[next_cpu_nr]) (cpu);
        |    ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c:232:14: note: ‘engine_fns$’ was declared here
    232 |   ENGINE_FN *engine_fns[MAX_NR_PROCESSORS];
        |              ^~~~~~~~~~

This is a false positive - we over allocate engine_fn, and then only
initialize the nr_cpus entries which we will later go on to use.

However, we can easily silence this warning by initializing the unused
entries in engine_fns to NULL, this might also help if anyone ever
looks at engine_fns in a debugger, it should now be obvious which
entries are in use, and which are not.

With this change the warning is gone.

There should be no change in behaviour with this commit.
sim/common/cgen-run.c