[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1651167] [NEW] hw/ipmi/isa_ipmi_bt.c:283: suspect use
From: |
dcb |
Subject: |
[Qemu-devel] [Bug 1651167] [NEW] hw/ipmi/isa_ipmi_bt.c:283: suspect use of macro ? |
Date: |
Mon, 19 Dec 2016 15:47:52 -0000 |
Public bug reported:
I just had a go at compiling qemu trunk with
llvm trunk. It said:
hw/ipmi/isa_ipmi_bt.c:283:31: warning: logical not is only applied to
the left hand side of this bitwise operator [-Wlogical-not-parentheses]
Source code is
IPMI_BT_SET_HBUSY(ib->control_reg,
!IPMI_BT_GET_HBUSY(ib->control_reg));
That use of ! causes trouble. The SET and GET
macros are defined as:
#define IPMI_BT_GET_HBUSY(d) (((d) >> IPMI_BT_HBUSY_BIT) & 0x1)
#define IPMI_BT_SET_HBUSY(d, v) (d) = (((d) & ~IPMI_BT_HBUSY_MASK) | \
(((v & 1) << IPMI_BT_HBUSY_BIT)))
I can make the compiler shut up by adding extra () in the last
use of v in the SET macro, like this:
#define IPMI_BT_SET_HBUSY(d, v) (d) = (((d) & ~IPMI_BT_HBUSY_MASK) | \
((((v) & 1) << IPMI_BT_HBUSY_BIT)))
I think this is standard good practice when using macro parameters
anyway.
** Affects: qemu
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1651167
Title:
hw/ipmi/isa_ipmi_bt.c:283: suspect use of macro ?
Status in QEMU:
New
Bug description:
I just had a go at compiling qemu trunk with
llvm trunk. It said:
hw/ipmi/isa_ipmi_bt.c:283:31: warning: logical not is only applied to
the left hand side of this bitwise operator [-Wlogical-not-
parentheses]
Source code is
IPMI_BT_SET_HBUSY(ib->control_reg,
!IPMI_BT_GET_HBUSY(ib->control_reg));
That use of ! causes trouble. The SET and GET
macros are defined as:
#define IPMI_BT_GET_HBUSY(d) (((d) >> IPMI_BT_HBUSY_BIT) & 0x1)
#define IPMI_BT_SET_HBUSY(d, v) (d) = (((d) & ~IPMI_BT_HBUSY_MASK) | \
(((v & 1) << IPMI_BT_HBUSY_BIT)))
I can make the compiler shut up by adding extra () in the last
use of v in the SET macro, like this:
#define IPMI_BT_SET_HBUSY(d, v) (d) = (((d) & ~IPMI_BT_HBUSY_MASK) | \
((((v) & 1) << IPMI_BT_HBUSY_BIT)))
I think this is standard good practice when using macro parameters
anyway.
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1651167/+subscriptions
- [Qemu-devel] [Bug 1651167] [NEW] hw/ipmi/isa_ipmi_bt.c:283: suspect use of macro ?,
dcb <=
- Re: [Qemu-devel] [Bug 1651167] [NEW] hw/ipmi/isa_ipmi_bt.c:283: suspect use of macro ?, Corey Minyard, 2016/12/22
- [Qemu-devel] [Bug 1651167] Re: hw/ipmi/isa_ipmi_bt.c:283: suspect use of macro ?, cminyard, 2016/12/22
- [Qemu-devel] [PATCH] ipmi: Add parenthesis around some macro parameters, minyard, 2016/12/22
- [Qemu-devel] [PATCH v2] ipmi: Fix macro issues, minyard, 2016/12/22
- [Qemu-devel] [PATCH v3] ipmi: Fix macro issues, minyard, 2016/12/23