From: "Sami Mujawar" <sami.mujawar@arm.com>
To: <devel@edk2.groups.io>
Cc: Sami Mujawar <sami.mujawar@arm.com>, <Alexei.Fedorov@arm.com>,
<ard.biesheuvel@arm.com>, <leif@nuviainc.com>,
<Matteo.Carlini@arm.com>, <Laura.Moretta@arm.com>,
<philmd@redhat.com>, <nd@arm.com>
Subject: [PATCH v2 2/2] ArmPlatformPkg: Fix comparison of constants warning
Date: Mon, 18 May 2020 13:46:46 +0100 [thread overview]
Message-ID: <20200518124646.45292-3-sami.mujawar@arm.com> (raw)
In-Reply-To: <20200518124646.45292-1-sami.mujawar@arm.com>
The VS2017 compiler reports 'warning C6326: potential
comparison of a constant with another constant' when
a fixed PCD value is compared with a constant value.
The faulting code is as marked by '-->' below:
--> if (FixedPcdGet32 (PL011UartInteger) != 0) {
Integer = FixedPcdGet32 (PL011UartInteger);
Fractional = FixedPcdGet32 (PL011UartFractional);
} else {
...
The macro FixedPcdGet32 (PL011UartInteger) evaluates
to a macro _PCD_VALUE_PL011UartInteger that is defined
by the build system to represent the UART Integer
value. Therefore, the VS2017 compiler reports the above
warning.
In this case the warning reported by the Visual Studio
compiler does not evaluate to an issue. However, it can
be useful to detect potential issues in other scenarios.
Other compilers may either be incapable of detecting and
reporting comparison with constant warnings or may be
good at reducing false positives. So, it is definitely
useful to keep this warning enabled, and disabling it
case by case is a suitable option.
Therefore, disable this warning for Visual studio
compilers using the pragma suppress directive that:
'Pushes the current state of the pragma on the stack,
disables the specified warning for the next line, and
then pops the warning stack so that the pragma state
is reset.'
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---
Notes:
v2:
- Update patch to selectively suppress comparison of [SAMI]
constant warning and submit as a separate series.
v1:
- Fix comparison of constant warning reported by VS2017 [SAMI]
- Various feedbacks can be seen at:
https://edk2.groups.io/g/devel/topic/32999801#46278
ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.c b/ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.c
index 2d3c279cce49304959953ec4a34b50e09a7d0045..3c915e1e8de22a0b0b4cc46d495a5a6cbc784013 100644
--- a/ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.c
+++ b/ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.c
@@ -2,7 +2,7 @@
Serial I/O Port library functions with no library constructor/destructor
Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
- Copyright (c) 2011 - 2019, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2011 - 2020, ARM Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -174,6 +174,14 @@ PL011UartInitializePort (
//
// If PL011 Integer value has been defined then always ignore the BAUD rate
+#if defined(_MSC_EXTENSIONS)
+ // Suppress 'warning C6326' reported by Visual Studio compiler using
+ // the suppress pragma directive that: 'Pushes the current state of
+ // the pragma on the stack, disables the specified warning for the
+ // next line, and then pops the warning stack so that the pragma state
+ // is reset.'
+#pragma warning(suppress:6326)
+#endif
if (FixedPcdGet32 (PL011UartInteger) != 0) {
Integer = FixedPcdGet32 (PL011UartInteger);
Fractional = FixedPcdGet32 (PL011UartFractional);
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
next prev parent reply other threads:[~2020-05-18 12:47 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-18 12:46 [PATCH v3 0/2] Fix warnings reported by VS2017 compiler Sami Mujawar
2020-05-18 12:46 ` [PATCH v1-resend 1/2] ArmPlatformPkg: Fix UART divisor warning Sami Mujawar
2020-07-02 11:50 ` [edk2-devel] " Sami Mujawar
2020-05-18 12:46 ` Sami Mujawar [this message]
2020-05-18 17:51 ` [PATCH v2 2/2] ArmPlatformPkg: Fix comparison of constants warning Leif Lindholm
2020-05-20 10:47 ` Philippe Mathieu-Daudé
2020-05-20 11:25 ` Sami Mujawar
2020-05-20 11:37 ` Philippe Mathieu-Daudé
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=20200518124646.45292-3-sami.mujawar@arm.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