Re: Question about ECPGset_noind_null() and ECPGis_noind_null()

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: Boszormenyi Zoltan <zb(at)cybertec(dot)at>, Michael Meskes <meskes(at)postgresql(dot)org>, pgsql-hackers(at)postgresql(dot)org, Hans-Juergen Schoenig <hs(at)cybertec(dot)at>
Subject: Re: Question about ECPGset_noind_null() and ECPGis_noind_null()
Date: 2009-11-19 20:51:12
Message-ID: 29461.1258663872@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
> Boszormenyi Zoltan wrote:
>> Is it *really* a bug? I recalled a comment from my C teacher
>> in '92 or '93 about this exact issue, that the prefix/postfix
>> increment/decrement operators are executed in the
>> statement in an implementation-defined order,

> Not if they come after a short-circuit operator such as && - after all,
> that's what short-circuit evaluation implies. If the left hand operand
> of && is false the right hand should not be evaluated at all.

Yes. && is a sequence point and the compiler is not allowed to move
side-effects across a sequence point. What your C teacher was warning
you against was things like
a[i] = i++;
'=' is not a sequence point so it's undefined which array index
will be stored into.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2009-11-19 20:54:18 Re: Architecture of walreceiver (Streaming Replication)
Previous Message Chris Browne 2009-11-19 20:39:19 Re: Listen / Notify - what to do when the queue is full