REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2048 Provide a macro for compile time assertions. Equivalent to C11 static_assert macro from assert.h. Signed-off-by: Vitaly Cheptsov --- MdePkg/Include/Base.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h index ce20b5f01dce..f85f7028a262 100644 --- a/MdePkg/Include/Base.h +++ b/MdePkg/Include/Base.h @@ -843,6 +843,17 @@ typedef UINTN *BASE_LIST; #define OFFSET_OF(TYPE, Field) ((UINTN) &(((TYPE *)0)->Field)) #endif +/// +/// Portable definition for compile time assertions. +/// Equivalent to C11 static_assert macro from assert.h. +/// Takes condtion and error message as its arguments. +/// +#ifdef _MSC_EXTENSIONS + #define STATIC_ASSERT static_assert +#else + #define STATIC_ASSERT _Static_assert +#endif + /** Macro that returns a pointer to the data structure that contains a specified field of that data structure. This is a lightweight method to hide information by placing a -- 2.20.1 (Apple Git-117)