summaryrefslogtreecommitdiffstats
path: root/PcAtChipsetPkg
diff options
context:
space:
mode:
authorMichael Kinney <michael.d.kinney@intel.com>2017-05-02 17:23:22 -0700
committerMichael Kinney <michael.d.kinney@intel.com>2017-05-19 12:12:06 -0700
commitbbd61de5dbc6ad146dc7250e9646cb662604b5f3 (patch)
tree955575ad4dff51a768db1d018e7340c2e45e13ca /PcAtChipsetPkg
parentda0df6ca8f8f118866e53c7fb770598c199993a6 (diff)
downloadedk2-bbd61de5dbc6ad146dc7250e9646cb662604b5f3.tar.gz
edk2-bbd61de5dbc6ad146dc7250e9646cb662604b5f3.tar.bz2
edk2-bbd61de5dbc6ad146dc7250e9646cb662604b5f3.zip
PcAtChipsetPkg/SerialIoLib: Remove negative value shift
https://bugzilla.tianocore.org/show_bug.cgi?id=553 Remove left shift of negative values that always evaluate to 0 to address build errors from the llvm/clang compiler used in the XCODE5 tool chain. Clang rightfully complains about left-shifting ~DLAB. DLAB is #defined as 0x01 (an "int"), hence ~DLAB has value (-2) on all edk2 platforms. Left-shifting a negative int is undefined behavior. Rather than replacing ~DLAB with ~(UINT32)DLAB, realize that the nonzero bits of (~(UINT32)DLAB << 7) would all be truncated away in the final conversion to UINT8 anyway. So just remove (~DLAB << 7). Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Laszlo Ersek <lersek@redhat.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Diffstat (limited to 'PcAtChipsetPkg')
-rw-r--r--PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c b/PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c
index 95e0db70ad..0a2e20c1d9 100644
--- a/PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c
+++ b/PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c
@@ -102,7 +102,7 @@ SerialPortInitialize (
//
// Switch back to bank 0
//
- OutputData = (UINT8) ((~DLAB << 7) | (gBreakSet << 6) | (gParity << 3) | (gStop << 2) | Data);
+ OutputData = (UINT8) ( (gBreakSet << 6) | (gParity << 3) | (gStop << 2) | Data);
IoWrite8 (gUartBase + LCR_OFFSET, OutputData);
return RETURN_SUCCESS;
@@ -481,7 +481,7 @@ SerialPortSetAttributes (
//
// Switch back to bank 0
//
- OutputData = (UINT8) ((~DLAB << 7) | (gBreakSet << 6) | (LcrParity << 3) | (LcrStop << 2) | LcrData);
+ OutputData = (UINT8) ((gBreakSet << 6) | (LcrParity << 3) | (LcrStop << 2) | LcrData);
IoWrite8 (gUartBase + LCR_OFFSET, OutputData);
return RETURN_SUCCESS;