Re: pgsql: Provide some static-assertion functionality on all compilers.

From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: pgsql-committers(at)postgresql(dot)org
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: pgsql: Provide some static-assertion functionality on all compilers.
Date: 2012-10-18 11:23:04
Message-ID: 201210181323.04961.andres@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Tuesday, October 16, 2012 11:50:48 PM Tom Lane wrote:
> Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> > On Monday, October 01, 2012 04:46:41 AM Tom Lane wrote:
> >> Provide some static-assertion functionality on all compilers.
> >
> > The current method used here doesn't allow the macro to be used in file
> > scope
>
> > which imo would be rather useful. What about adding something like:
> I deliberately didn't go that way, because I didn't see any methods to
>
> do it that weren't utter hacks, with deficiencies like this one:
> > Annoyingly that would mean you cannot have two errors in the same line
> > in two files that are in one translation unit if your compiler doesn't
> > allow repeated typedefs. Not sure if thats a realistic problem?
>
> If it came up even once, it would annoy people no end. I don't see any
> very strong reason not to just put the assertions inside functions
> instead.

In the case that made me think about it I wanted to assert that internal and
external data structures are compatible. Putting the static asserts in a
function relatively far away from the data structures seems to make it more
likely that adding new asserts will be forgotten.

Unfortunately I don't have a better idea to fix the above deficiency than
adding another parameter for disambiguation :(

Andres

--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2012-10-18 12:39:25 pgsql: Add isolation tests for DROP INDEX CONCURRENTLY.
Previous Message Tom Lane 2012-10-17 16:39:08 pgsql: Revert "Use "transient" files for blind writes, take 2".