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

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: "Smith, Peter" <peters(at)fast(dot)au(dot)fujitsu(dot)com>
Cc: "andres(at)anarazel(dot)de" <andres(at)anarazel(dot)de>, Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "peter(dot)eisentraut(at)2ndquadrant(dot)com" <peter(dot)eisentraut(at)2ndquadrant(dot)com>, "tgl(at)sss(dot)pgh(dot)pa(dot)us" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "ilmari(at)ilmari(dot)org" <ilmari(at)ilmari(dot)org>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Proposal: Add more compile-time asserts to expose inconsistencies.
Date: 2020-01-31 02:47:01
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Tue, Dec 24, 2019 at 02:47:29PM +0900, Michael Paquier wrote:
> I am still seeing that a couple of points need an extra lookup:
> - Addition of a Decl() in at least one header of the core code.

I agree with the addition of Decl() definition in a header, and could
not think about something better than one for bufpage.h for the
all-zero check case, so I went with that. Attached is a 0001 which
adds the definition for StaticAssertDecl() for C and C++ for all code
paths. If there are no objections, I would like to commit this
version. There is no fancy refactoring in it, and small progress is
better than no progress. I have also reworked the comments in the
patch, and did some testing on Windows.

> - Perhaps unifying the fallback implementation between C and C++, with
> a closer lookup in particular at StaticAssertStmt() and StaticAssertExpr().

Seeing nothing happening on this side. I took a shot at all that, and
I have hacked my way through it with 0002 which is an attempt to unify
the fallback implementation for C and C++. This is not fully baked
yet, and it is perhaps a matter of taste if this makes the code more
readable or not. I think it does, because it reduces the parts
dedicated to assertion definitions from four to three. Anyway, let's
discuss about that.

Attachment Content-Type Size
0001-Add-declaration-level-assertions.patch text/x-diff 10.9 KB
0002-Refactor-assertion-definitions-in-c.h.patch text/x-diff 2.8 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Dominik Czarnota 2020-01-31 03:18:09 PATCH: Fix wrong size argument to pg_strncasecmp
Previous Message Amit Kapila 2020-01-31 02:38:01 Re: PATCH: logical_work_mem and logical streaming of large in-progress transactions