Re: Question about ECPGset_noind_null() and ECPGis_noind_null()
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: Boszormenyi Zoltan <zb@cybertec.at>, Michael Meskes <meskes@postgresql.org>, pgsql-hackers@postgresql.org, Hans-Juergen Schoenig <hs@cybertec.at>
Date: 2009-11-19T20:51:12Z
Lists: pgsql-hackers
Andrew Dunstan <andrew@dunslane.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