From 8c298e11045e95d9ef40dedc3e6a37eb2625487a Mon Sep 17 00:00:00 2001 From: Kun Qin Date: Tue, 10 Mar 2026 01:06:00 -0700 Subject: [PATCH] BaseTools: GenFfs/GenFv/GenSec: Fixing Warning 4319 from MSVC This change fixes a warning newly emitted by the latest MSVC, which now treats this warning as an error and causes the build to fail. This change aligns operand types in bitwise expressions by casting sizeof results to UINT32, and promoting a UINT32 to UINTN where required to correctly apply the bitmask. Signed-off-by: Kun Qin --- BaseTools/Source/C/GenFfs/GenFfs.c | 2 +- BaseTools/Source/C/GenFv/GenFvInternalLib.c | 2 +- BaseTools/Source/C/GenSec/GenSec.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/BaseTools/Source/C/GenFfs/GenFfs.c b/BaseTools/Source/C/GenFfs/GenFfs.c index 4c2e93e6f4..889cf5f8c2 100644 --- a/BaseTools/Source/C/GenFfs/GenFfs.c +++ b/BaseTools/Source/C/GenFfs/GenFfs.c @@ -398,7 +398,7 @@ Returns: // Based on section type to adjust offset? Todo // if ((InputFileAlign [Index] != 0) && (((Size + HeaderSize + TeOffset) % InputFileAlign [Index]) != 0)) { - Offset = (Size + sizeof (EFI_COMMON_SECTION_HEADER) + HeaderSize + TeOffset + InputFileAlign [Index] - 1) & ~(InputFileAlign [Index] - 1); + Offset = (Size + (UINT32)sizeof (EFI_COMMON_SECTION_HEADER) + HeaderSize + TeOffset + InputFileAlign [Index] - 1) & ~(InputFileAlign [Index] - 1); Offset = Offset - Size - HeaderSize - TeOffset; if (FileBuffer != NULL && ((Size + Offset) < *BufferLength)) { diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Source/C/GenFv/GenFvInternalLib.c index f2fb4e04b5..3f621d190f 100644 --- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c +++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c @@ -3176,7 +3176,7 @@ Returns: // // Only EFI_FFS_FILE_HEADER is needed for a pad section. // - CurrentOffset = (CurrentOffset + FfsHeaderSize + sizeof(EFI_FFS_FILE_HEADER) + FfsAlignment - 1) & ~(FfsAlignment - 1); + CurrentOffset = (CurrentOffset + FfsHeaderSize + sizeof(EFI_FFS_FILE_HEADER) + FfsAlignment - 1) & ~(UINTN)(FfsAlignment - 1); CurrentOffset -= FfsHeaderSize; } } diff --git a/BaseTools/Source/C/GenSec/GenSec.c b/BaseTools/Source/C/GenSec/GenSec.c index d9d2efeca7..f675338a46 100644 --- a/BaseTools/Source/C/GenSec/GenSec.c +++ b/BaseTools/Source/C/GenSec/GenSec.c @@ -538,7 +538,7 @@ Returns: // make sure section data meet its alignment requirement by adding one raw pad section. // if ((InputFileAlign [Index] != 0) && (((Size + HeaderSize + TeOffset) % InputFileAlign [Index]) != 0)) { - Offset = (Size + sizeof (EFI_COMMON_SECTION_HEADER) + HeaderSize + TeOffset + InputFileAlign [Index] - 1) & ~(InputFileAlign [Index] - 1); + Offset = (Size + (UINT32)sizeof (EFI_COMMON_SECTION_HEADER) + HeaderSize + TeOffset + InputFileAlign [Index] - 1) & ~(InputFileAlign [Index] - 1); Offset = Offset - Size - HeaderSize - TeOffset; if (FileBuffer != NULL && ((Size + Offset) < *BufferLength)) {