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

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

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.

> Independently from this it might be worthwile to add the __LINE__ hackery to
> the existing fallback for StaticAssertStmt?

Uh, why? It's going to be a static compile error, so surely your
compiler will give you a line number already.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2012-10-17 07:16:21 pgsql: Clarify hash index caution and copy to CREATE INDEX docs
Previous Message Bruce Momjian 2012-10-16 16:38:10 pgsql: When outputting the session id in log_line_prefix (%c) or in CSV