public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Andrew Fish <afish@apple.com>
Cc: "Marvin Häuser" <Marvin.Haeuser@outlook.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	"ruiyu.ni@intel.com" <ruiyu.ni@intel.com>,
	"eric.dong@intel.com" <eric.dong@intel.com>,
	"star.zeng@intel.com" <star.zeng@intel.com>
Subject: Re: [PATCH 1/2] MdeModulePkg/PciBusDxe: Prevent truncating constant values.
Date: Wed, 28 Feb 2018 12:42:04 +0100	[thread overview]
Message-ID: <20348a44-8b73-3389-59a4-3b67cd35e01c@redhat.com> (raw)
In-Reply-To: <6C7D5245-F76E-4FF1-B7B5-B1254EA83C44@apple.com>

On 02/27/18 19:50, Andrew Fish wrote:
> 
> 
>> On Feb 27, 2018, at 10:42 AM, Laszlo Ersek <lersek@redhat.com> wrote:
>>
>> On 02/27/18 17:49, Marvin Häuser wrote:
>>> The toolcahin VS2015x86 issues warnings when truncating constant
>>> values. Explicitely cast such to avoid it.
>>>
>>> Contributed-under: TianoCore Contribution Agreement 1.1
>>> Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
>>> ---
>>> MdeModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.c
>>> index 2f713fcee95e..a752853f3e9e 100644
>>> --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.c
>>> +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.c
>>> @@ -1936,7 +1936,7 @@ ProgramP2C (
>>>                    &BridgeControl
>>>                    );
>>>
>>> -      BridgeControl &= (UINT16) ~PCI_CARD_PREFETCHABLE_MEMORY_0_ENABLE;
>>> +      BridgeControl &= (UINT16) ~(UINT16)PCI_CARD_PREFETCHABLE_MEMORY_0_ENABLE;
>>>       PciIo->Pci.Write (
>>>                    PciIo,
>>>                    EfiPciIoWidthUint16,
>>> @@ -2005,7 +2005,7 @@ ProgramP2C (
>>>                    &BridgeControl
>>>                    );
>>>
>>> -      BridgeControl &= (UINT16) ~(PCI_CARD_PREFETCHABLE_MEMORY_1_ENABLE);
>>> +      BridgeControl &= (UINT16) ~(UINT16)(PCI_CARD_PREFETCHABLE_MEMORY_1_ENABLE);
>>>       PciIo->Pci.Write (
>>>                    PciIo,
>>>                    EfiPciIoWidthUint16,
>>>
>>
>> My recommendation is the same as for:
>>
>>  [edk2] [PATCH 2/2] MdeModulePkg/BaseSerialPortLib16550: Prevent
>>                     truncating constant values.
>>
>> #define PCI_CARD_PREFETCHABLE_MEMORY_0_ENABLE BIT8
>> #define PCI_CARD_PREFETCHABLE_MEMORY_1_ENABLE BIT9
>>
>> #define  BIT8     0x00000100
>> #define  BIT9     0x00000200
>>
> 
> Laszlo,
> 
> Stupid question? Would making BIT8 0x00000100U help? I notice we use ULL for the larger ones, and I don't remember why we don't use U for the ones that fit into a int?

I don't know why BIT[0..31] don't use the U suffix from the beginning. I
agree they should have. Adding the suffixes now is the right thing in
theory, although some "clever" applications of those macros could
regress as a result.

Regarding the question whether this patch would be obviated by making
BIT[0..31] unsigned, Marvin explained elsewhere that just making
BIT[0..31] unsigned didn't help with suppressing the warning. As I
commented under Marvin's explanation, I understand neither why the
compiler warns about the current code (with or without making BIT[0..31]
unsigned), nor -- assuming the original warning is somehow justifiable
-- why the warning is apparently silenced by inserting a UINT16 cast
ahead of the bit-neg. As far as I could see, if the warning applied to
the original code, it should have applied to the patched code too.

Thanks
Laszlo


  parent reply	other threads:[~2018-02-28 11:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-27 16:49 [PATCH 1/2] MdeModulePkg/PciBusDxe: Prevent truncating constant values Marvin Häuser
2018-02-27 18:42 ` Laszlo Ersek
2018-02-27 18:50   ` Andrew Fish
2018-02-27 18:57     ` Marvin Häuser
2018-02-28 11:42     ` Laszlo Ersek [this message]
2018-02-28 11:48       ` Marvin Häuser

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-list 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=20348a44-8b73-3389-59a4-3b67cd35e01c@redhat.com \
    --to=devel@edk2.groups.io \
    /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