Re: cleanup in code

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: David Rowley <dgrowleyml(at)gmail(dot)com>, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: cleanup in code
Date: 2014-01-06 14:54:15
Message-ID: 2656.1389020055@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andres Freund <andres(at)2ndquadrant(dot)com> writes:
>> On Mon, Jan 6, 2014 at 11:38 PM, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> wrote:
>>> Hmm, I thought we gave enough hints in the elog macro to tell the compiler
>>> that elog(ERROR) does no return, since commit b853eb97182079dcd30b4f52576bd5d6c275ee71.

> But afair the declaration for elog() works in several other places, so
> that doesn't sufficiently explain this. I'd very much expect that that
> variable is complitely elided by any halfway competent compiler - it's
> just there to prevent multiple evaluation should elevel not be a
> constant.

At -O0 (or local equivalent), it would not surprise me at all that
compilers wouldn't recognize elog(ERROR) as not returning.

I don't think there's ever been any expectation that that marking would
be bulletproof. We added it to permit better code generation, not to
silence reachability warnings.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2014-01-06 14:55:46 generic pseudotype IO functions?
Previous Message Amit Kapila 2014-01-06 14:48:36 Re: ALTER SYSTEM SET command to change postgresql.conf parameters