Re: [edk2-devel] [PATCH] MdePkg: Add STATIC_ASSERT macro
(adding back the list) On 08/13/19 16:30, vit9...@protonmail.com wrote: > Laszlo, > > GCC implemented _Static_assert in 4.6. See its official wiki for C11 > compatibility documentation: > > https://gcc.gnu.org/wiki/C11Status Awesome news! Once this is upstreamed, we should go through all the ASSERT()s in the code, and replace those that are compile-time checkable with STATIC_ASSERT(). I know that I've added quite a few ASSERT()s that I wished would be checked at build time. Of course, I'll probably never have time for that. :/ Thanks Laszlo -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45617): https://edk2.groups.io/g/devel/message/45617 Mute This Topic: https://groups.io/mt/32841448/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] MdePkg: Add STATIC_ASSERT macro
On 08/12/19 12:05, via Groups.Io wrote: > Implements https://bugzilla.tianocore.org/show_bug.cgi?id=2048. > > Best regards, > Vitaly Cheptsov > > > > > > 0001-MdePkg-Add-STATIC_ASSERT-macro.patch > > > From 4e388637cc9004ef8befdd7fa6c9446c96daf011 Mon Sep 17 00:00:00 2001 > From: Vitaly Cheptsov > Date: Mon, 12 Aug 2019 12:43:06 +0300 > Subject: [PATCH] MdePkg: Add STATIC_ASSERT macro > > 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 ce20b5f01d..0162192f71 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_VER > + #define STATIC_ASSERT static_assert > +#else > + #define STATIC_ASSERT _Static_assert The oldest GCC toolchain that edk2 supports is GCC48. Will _Static_assert work with gcc-4.8? Thanks Laszlo > +#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) > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45564): https://edk2.groups.io/g/devel/message/45564 Mute This Topic: https://groups.io/mt/32841448/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] MdePkg: Add STATIC_ASSERT macro
Hi Vitaly, Thanks for the contribution. I see you are using _MSC_VER. The rest of Base.h uses _MSC_EXTENSIONs and only if that is defined is _MSC_VER used and _MSC_VER is only used if a specific version value check is required. What version of VS introduced this feature? We can define this macro to nothing of the version is too small. Also, is the mapping for both GCC and XCODE5 the same? For the next version of this patch, can you use the ‘git send-email’ feature instead of attaching a patch file? A couple useful links: https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process https://github.com/tianocore/tianocore.github.io/wiki/Laszlo's-unkempt-git-guide-for-edk2-contributors-and-maintainers Thanks, Mike From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of via Groups.Io Sent: Monday, August 12, 2019 3:06 AM To: devel@edk2.groups.io Subject: [edk2-devel] [PATCH] MdePkg: Add STATIC_ASSERT macro Implements https://bugzilla.tianocore.org/show_bug.cgi?id=2048. Best regards, Vitaly Cheptsov -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45467): https://edk2.groups.io/g/devel/message/45467 Mute This Topic: https://groups.io/mt/32841448/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[edk2-devel] [PATCH] MdePkg: Add STATIC_ASSERT macro
Implements https://bugzilla.tianocore.org/show_bug.cgi?id=2048. Best regards, Vitaly Cheptsov -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45451): https://edk2.groups.io/g/devel/message/45451 Mute This Topic: https://groups.io/mt/32841448/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=- 0001-MdePkg-Add-STATIC_ASSERT-macro.patch Description: Binary data publickey - vit9696@protonmail.com - 0x44529644.asc Description: application/pgp-keys signature.asc Description: OpenPGP digital signature
[edk2-devel] [PATCH] MdePkg: Add STATIC_ASSERT macro
Implements https://bugzilla.tianocore.org/show_bug.cgi?id=2048. Best regards, Vitaly Cheptsov -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45445): https://edk2.groups.io/g/devel/message/45445 Mute This Topic: https://groups.io/mt/32841448/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=- 0001-MdePkg-Add-STATIC_ASSERT-macro.patch Description: Binary data publickey - vit9696@protonmail.com - 0x44529644.asc Description: application/pgp-keys signature.asc Description: OpenPGP digital signature