summaryrefslogtreecommitdiffstats
path: root/MdePkg
diff options
context:
space:
mode:
authorRebecca Cran <rebecca@quicinc.com>2023-02-09 07:24:16 -0700
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-03-17 17:55:48 +0000
commitd6107c593bd0a6e9659b5290d245e22614232b4a (patch)
tree449b6007c215239fc1460afa731066c660fb7376 /MdePkg
parent410ca0ff94a42ee541dd6ceab70ea974eeb7e500 (diff)
downloadedk2-d6107c593bd0a6e9659b5290d245e22614232b4a.tar.gz
edk2-d6107c593bd0a6e9659b5290d245e22614232b4a.tar.bz2
edk2-d6107c593bd0a6e9659b5290d245e22614232b4a.zip
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 <rebecca@quicinc.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Diffstat (limited to 'MdePkg')
-rw-r--r--MdePkg/Include/Base.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h
index d209e6de28..e89c84962a 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