Hi Rebecca,

Reviewed-by: Michael D Kinney <michael.d.kin...@intel.com>

Do you think this needs to be considered for edk2-stable202302?

Thanks,

Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran
> Sent: Thursday, February 9, 2023 7:45 AM
> To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kin...@intel.com>; 
> Gao, Liming <gaolim...@byosoft.com.cn>; Liu, Zhiguang
> <zhiguang....@intel.com>
> Cc: Rebecca Cran <rebe...@quicinc.com>
> Subject: [edk2-devel] [PATCH 1/2] MdePkg: Update Base.h to be compliant with 
> C11
> 
> With the introduction of the use of _Static_assert, edk2 requires a C11
> compatible compiler. Update Include/Base.h to be compliant with C11.
> 
> As of C11, the maximum type of an enum is type `int`. Since the UEFI
> Specification 2.3.1 Errata C allows either `int` or `unsigned int`, fix
> the 32-bit enum check to use a signed int.
> 
> Since the UEFI 2.3 Specification only allowed signed int, update the
> comment to reference 2.3.1 Errata C where the change was made to allow
> unsigned int.
> 
> Signed-off-by: Rebecca Cran <rebe...@quicinc.com>
> ---
>  MdePkg/Include/Base.h | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h
> index d209e6de280a..e89c84962ab2 100644
> --- a/MdePkg/Include/Base.h
> +++ b/MdePkg/Include/Base.h
> @@ -796,9 +796,9 @@ STATIC_ASSERT (sizeof (L"A")    == 4, "sizeof (L\"A\") 
> does not meet UEFI Specif
>  //
>  // The following three enum types are used to verify that the compiler
>  // configuration for enum types is compliant with Section 2.3.1 of the
> -// UEFI 2.3 Specification. These enum types and enum values are not
> -// intended to be used. A prefix of '__' is used avoid conflicts with
> -// other types.
> +// UEFI 2.3.1 Errata C Specification. These enum types and enum values
> +// are not intended to be used. A prefix of '__' is used avoid
> +// conflicts with other types.
>  //
>  typedef enum {
>    __VerifyUint8EnumValue = 0xff
> @@ -809,12 +809,12 @@ typedef enum {
>  } __VERIFY_UINT16_ENUM_SIZE;
> 
>  typedef enum {
> -  __VerifyUint32EnumValue = 0xffffffff
> -} __VERIFY_UINT32_ENUM_SIZE;
> +  __VerifyInt32EnumValue = 0x7fffffff
> +} __VERIFY_INT32_ENUM_SIZE;
> 
>  STATIC_ASSERT (sizeof (__VERIFY_UINT8_ENUM_SIZE) == 4, "Size of enum does 
> not meet UEFI Specification Data Type requirements");
>  STATIC_ASSERT (sizeof (__VERIFY_UINT16_ENUM_SIZE) == 4, "Size of enum does 
> not meet UEFI Specification Data Type requirements");
> -STATIC_ASSERT (sizeof (__VERIFY_UINT32_ENUM_SIZE) == 4, "Size of enum does 
> not meet UEFI Specification Data Type requirements");
> +STATIC_ASSERT (sizeof (__VERIFY_INT32_ENUM_SIZE) == 4, "Size of enum does 
> not meet UEFI Specification Data Type requirements");
> 
>  /**
>    Macro that returns a pointer to the data structure that contains a 
> specified field of
> --
> 2.30.2
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#99938): https://edk2.groups.io/g/devel/message/99938
Mute This Topic: https://groups.io/mt/96855617/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: 
https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to