Andres Freund <andres@2ndquadrant.com> writes:
> On 2013-01-11 16:16:58 -0500, Tom Lane wrote:
>> Uh ... because it's *not* unreachable if elevel < ERROR. Otherwise we'd
>> just mark errfinish as __attribute((noreturn)) and be done. Of course,
>> that's a gcc-ism too.
> Well, I mean with the double evaluation risk.
Oh, are you saying you don't want to make the __builtin_constant_p
addition? I'm not very satisfied with that answer. Right now, Peter's
patch has added a class of bugs that never existed before 9.3, and yours
would add more. It might well be that those classes are empty ... but
*we can't know that*. I don't think that keeping a new optimization for
non-gcc compilers is worth that risk. Postgres is already full of
gcc-only optimizations, anyway.
regards, tom lane