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 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 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 " 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 -- strict thread matches above, loose matches on Subject: below -- 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
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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).