From: "Philippe Mathieu-Daudé" <philmd@redhat.com> To: qemu-devel@nongnu.org, "Martin Liška" <mliska@suse.cz>, "Eric Blake" <eblake@redhat.com> Cc: "Peter Maydell" <peter.maydell@linaro.org>, "Thomas Huth" <thuth@redhat.com>, "Jia Liu" <proljc@gmail.com>, qemu-trivial@nongnu.org, "Markus Armbruster" <armbru@redhat.com>, 1874073@bugs.launchpad.net, "Christophe de Dinechin" <dinechin@redhat.com>, "Stafford Horne" <shorne@gmail.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com> Subject: [PATCH v2] hw/openrisc/openrisc_sim: Add assertion to silence GCC warning Date: Mon, 8 Jun 2020 18:06:11 +0200 [thread overview] Message-ID: <20200608160611.16966-1-philmd@redhat.com> (raw) When compiling with GCC 10 (Fedora 32) using CFLAGS=-O2 we get: CC or1k-softmmu/hw/openrisc/openrisc_sim.o hw/openrisc/openrisc_sim.c: In function ‘openrisc_sim_init’: hw/openrisc/openrisc_sim.c:87:42: error: ‘cpu_irqs[0]’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 87 | sysbus_connect_irq(s, i, cpu_irqs[i][irq_pin]); | ~~~~~~~~^~~ While humans can tell smp_cpus will always be in the [1, 2] range, (openrisc_sim_machine_init sets mc->max_cpus = 2), the compiler can't. Add an assertion to give the compiler a hint there's no use of uninitialized data. Buglink: https://bugs.launchpad.net/qemu/+bug/1874073 Reported-by: Martin Liška <mliska@suse.cz> Suggested-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Tested-by: Eric Blake <eblake@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- v2: Fixed typo in subject (eblake) Supersedes: <20200608071409.17024-1-philmd@redhat.com> --- hw/openrisc/openrisc_sim.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c index d08ce61811..02f5259e5e 100644 --- a/hw/openrisc/openrisc_sim.c +++ b/hw/openrisc/openrisc_sim.c @@ -134,6 +134,7 @@ static void openrisc_sim_init(MachineState *machine) int n; unsigned int smp_cpus = machine->smp.cpus; + assert(smp_cpus >= 1 && smp_cpus <= 2); for (n = 0; n < smp_cpus; n++) { cpu = OPENRISC_CPU(cpu_create(machine->cpu_type)); if (cpu == NULL) { -- 2.21.3
WARNING: multiple messages have this Message-ID (diff)
From: "Philippe Mathieu-Daudé" <1874073@bugs.launchpad.net> To: qemu-devel@nongnu.org Subject: [Bug 1874073] [PATCH v2] hw/openrisc/openrisc_sim: Add assertion to silence GCC warning Date: Mon, 08 Jun 2020 16:06:11 -0000 [thread overview] Message-ID: <20200608160611.16966-1-philmd@redhat.com> (raw) Message-ID: <20200608160611.gogXyxPcfGh8iffODuivz7IKJfYyKF1lIeQ_k5d5vLs@z> (raw) In-Reply-To: 158747496330.1952.6391008472811579405.malonedeb@chaenomeles.canonical.com When compiling with GCC 10 (Fedora 32) using CFLAGS=-O2 we get: CC or1k-softmmu/hw/openrisc/openrisc_sim.o hw/openrisc/openrisc_sim.c: In function ‘openrisc_sim_init’: hw/openrisc/openrisc_sim.c:87:42: error: ‘cpu_irqs[0]’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 87 | sysbus_connect_irq(s, i, cpu_irqs[i][irq_pin]); | ~~~~~~~~^~~ While humans can tell smp_cpus will always be in the [1, 2] range, (openrisc_sim_machine_init sets mc->max_cpus = 2), the compiler can't. Add an assertion to give the compiler a hint there's no use of uninitialized data. Buglink: https://bugs.launchpad.net/qemu/+bug/1874073 Reported-by: Martin Liška <mliska@suse.cz> Suggested-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Tested-by: Eric Blake <eblake@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- v2: Fixed typo in subject (eblake) Supersedes: <20200608071409.17024-1-philmd@redhat.com> --- hw/openrisc/openrisc_sim.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c index d08ce61811..02f5259e5e 100644 --- a/hw/openrisc/openrisc_sim.c +++ b/hw/openrisc/openrisc_sim.c @@ -134,6 +134,7 @@ static void openrisc_sim_init(MachineState *machine) int n; unsigned int smp_cpus = machine->smp.cpus; + assert(smp_cpus >= 1 && smp_cpus <= 2); for (n = 0; n < smp_cpus; n++) { cpu = OPENRISC_CPU(cpu_create(machine->cpu_type)); if (cpu == NULL) { -- 2.21.3 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1874073 Title: openrisc_sim.c:87:42: error: 'cpu_irqs[0]' may be used uninitialized in this function [-Werror=maybe-uninitialized] Status in QEMU: Confirmed Bug description: I see the warning since gcc10: static void openrisc_sim_init(MachineState *machine): ... qemu_irq *cpu_irqs[2]; ... serial_mm_init(get_system_memory(), 0x90000000, 0, serial_irq, 115200, serial_hd(0), DEVICE_NATIVE_ENDIAN); I would initialize cpu_irqs[2] with {}. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1874073/+subscriptions
next prev reply other threads:[~2020-06-08 16:32 UTC|newest] Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-21 13:16 [Bug 1874073] [NEW] openrisc_sim.c:87:42: error: 'cpu_irqs[0]' may be used uninitialized in this function [-Werror=maybe-uninitialized] Martin Liska 2020-04-21 13:25 ` [Bug 1874073] " Martin Liska 2020-04-21 13:37 ` Peter Maydell 2020-04-21 14:08 ` Martin Liska 2020-04-21 14:36 ` Peter Maydell 2020-04-21 15:08 ` Philippe Mathieu-Daudé 2020-05-27 7:54 ` Martin Liska 2020-06-08 6:25 ` Philippe Mathieu-Daudé 2020-06-08 16:06 ` Philippe Mathieu-Daudé [this message] 2020-06-08 16:06 ` [Bug 1874073] [PATCH v2] hw/openrisc/openrisc_sim: Add assertion to silence GCC warning Philippe Mathieu-Daudé 2020-06-08 19:42 ` Richard Henderson 2020-06-09 17:44 ` [Bug 1874073] " Laurent Vivier 2020-06-09 17:44 ` Laurent Vivier 2020-07-02 8:50 ` [Bug 1874073] Re: openrisc_sim.c:87:42: error: 'cpu_irqs[0]' may be used uninitialized in this function [-Werror=maybe-uninitialized] Philippe Mathieu-Daudé 2020-08-20 14:39 ` Thomas Huth 2020-05-26 18:51 [PATCH] or1k: Fix compilation hiccup Eric Blake 2020-05-26 23:21 ` no-reply 2020-05-27 2:58 ` Eric Blake 2020-05-27 5:29 ` Thomas Huth 2020-05-27 7:27 ` Philippe Mathieu-Daudé 2020-05-27 7:27 ` [Bug 1874073] " Philippe Mathieu-Daudé 2020-05-29 16:21 ` Christophe de Dinechin 2020-05-29 16:40 ` Peter Maydell 2020-06-02 7:43 ` Markus Armbruster 2020-06-08 6:03 ` Markus Armbruster 2020-06-08 6:22 ` Philippe Mathieu-Daudé 2020-06-08 9:15 ` Markus Armbruster 2020-06-08 15:43 ` Eric Blake 2020-06-08 7:14 [PATCH] hw/openrisc/openrisc_sim: Add assertion to silent GCC warning Philippe Mathieu-Daudé 2020-06-08 7:14 ` [Bug 1874073] " Philippe Mathieu-Daudé 2020-06-08 7:16 ` Thomas Huth 2020-06-08 15:33 ` Eric Blake 2020-06-08 15:33 ` [Bug 1874073] " Eric Blake 2020-06-09 20:42 ` Stafford Horne 2020-06-09 20:49 ` Stafford Horne 2020-06-09 20:49 ` Eric Blake 2020-06-09 20:49 ` [Bug 1874073] " Eric Blake
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200608160611.16966-1-philmd@redhat.com \ --to=philmd@redhat.com \ --cc=1874073@bugs.launchpad.net \ --cc=armbru@redhat.com \ --cc=dinechin@redhat.com \ --cc=eblake@redhat.com \ --cc=mliska@suse.cz \ --cc=peter.maydell@linaro.org \ --cc=proljc@gmail.com \ --cc=qemu-devel@nongnu.org \ --cc=qemu-trivial@nongnu.org \ --cc=shorne@gmail.com \ --cc=thuth@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.