Re: Question about ECPGset_noind_null() and ECPGis_noind_null() - Mailing list pgsql-hackers

From Boszormenyi Zoltan
Subject Re: Question about ECPGset_noind_null() and ECPGis_noind_null()
Date
Msg-id 4B05B204.2000400@cybertec.at
Whole thread Raw
In response to Re: Question about ECPGset_noind_null() and ECPGis_noind_null()  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Tom Lane írta:
> 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
>   

Thanks to both of you, this was really informative.
Actually my C teacher didn't mention such optimization barriers.
It seems I need to look up the raw C language specs...

Best regards,
Zoltán Böszörményi

-- 
Bible has answers for everything. Proof:
"But let your communication be, Yea, yea; Nay, nay: for whatsoever is more
than these cometh of evil." (Matthew 5:37) - basics of digital technology.
"May your kingdom come" - superficial description of plate tectonics

----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
http://www.postgresql.at/



pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Architecture of walreceiver (Streaming Replication)
Next
From: Emmanuel Cecchet
Date:
Subject: Union test case broken in make check?