Re: Proposal: Add more compile-time asserts to expose inconsistencies.

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: "Smith, Peter" <peters@fast.au.fujitsu.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-09-18T07:40:19Z
Lists: pgsql-hackers
On Wed, Sep 18, 2019 at 06:46:24AM +0000, Smith, Peter wrote:
> I have identified some OSS code where more compile-time asserts could be added. 
> 
> Mostly these are asserting that arrays have the necessary length to
> accommodate the enums that are used to index into them.
> 
> In general the code is already commented with warnings such as:
> * "If you add a new entry, remember to ..."
> * "When modifying this enum, update the table in ..."
> * "Display names for enums in ..."
> * etc.
> 
> But comments can be accidentally overlooked, so adding the
> compile-time asserts can help eliminate human error. 

For some of them it could help, and we could think about a better
location for that stuff than an unused routine.  The indentation of
your patch is weird, with "git diff --check" complaining a lot.

If you want to discuss more about that, could you add that to the next
commit fest?  Here it is:
https://commitfest.postgresql.org/25/
--
Michael

Commits

  1. Add declaration-level assertions for compile-time checks

  2. Add support for static assertions in C++