Re: [edk2-devel] [PATCH] MdePkg: Add STATIC_ASSERT macro

2019-08-14 Thread Laszlo Ersek
(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

2019-08-13 Thread Laszlo Ersek
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

2019-08-12 Thread Michael D Kinney
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

2019-08-12 Thread vit9696 via Groups.Io
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

2019-08-12 Thread via Groups.Io
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