From: Laurent Vivier <1874073@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: [Bug 1874073] Re: [PATCH v2] hw/openrisc/openrisc_sim: Add assertion to silence GCC warning
Date: Tue, 09 Jun 2020 17:44:09 -0000 [thread overview]
Message-ID: <667551f6-96fb-19a3-828c-c8d0e1c41fb9@vivier.eu> (raw)
In-Reply-To: 20200608160611.16966-1-philmd@redhat.com
Le 08/06/2020 à 18:06, Philippe Mathieu-Daudé a écrit :
> 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) {
>
Applied to my trivial-patches branch.
Thanks,
Laurent
--
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
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Vivier <laurent@vivier.eu>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>,
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>
Subject: Re: [PATCH v2] hw/openrisc/openrisc_sim: Add assertion to silence GCC warning
Date: Tue, 9 Jun 2020 19:44:09 +0200 [thread overview]
Message-ID: <667551f6-96fb-19a3-828c-c8d0e1c41fb9@vivier.eu> (raw)
Message-ID: <20200609174409.0L6vY2eiednYvdvl9BDsf3o7lDS1jurHH5TYJlFSdUY@z> (raw)
In-Reply-To: <20200608160611.16966-1-philmd@redhat.com>
Le 08/06/2020 à 18:06, Philippe Mathieu-Daudé a écrit :
> 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) {
>
Applied to my trivial-patches branch.
Thanks,
Laurent
next prev parent reply other threads:[~2020-06-09 17:54 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 ` [PATCH v2] hw/openrisc/openrisc_sim: Add assertion to silence " Philippe Mathieu-Daudé
2020-06-08 16:06 ` [Bug 1874073] " Philippe Mathieu-Daudé
2020-06-08 19:42 ` Richard Henderson
2020-06-09 17:44 ` Laurent Vivier [this message]
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
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=667551f6-96fb-19a3-828c-c8d0e1c41fb9@vivier.eu \
--to=1874073@bugs.launchpad.net \
--cc=qemu-devel@nongnu.org \
/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: link
Be 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).