Commit 8b231d9
committed
Fix optimization hazard in gram.y's makeOrderedSetArgs(), redux.
It appears that commit cf63c64, which intended to prevent
misoptimization of the result-building step in makeOrderedSetArgs,
didn't go far enough: buildfarm member hornet's version of xlc
is now optimizing back to the old, broken behavior in which
list_length(directargs) is fetched only after list_concat() has
changed that value. I'm not entirely convinced whether that's
an undeniable compiler bug or whether it can be justified by a
sufficiently aggressive interpretation of C sequence points.
So let's just change the code to make it harder to misinterpret.
Back-patch to all supported versions, just in case.
Discussion: https://postgr.es/m/1830491.1601944935@sss.pgh.pa.us1 parent d8c2a21 commit 8b231d9
1 file changed
+3
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15817 | 15817 | | |
15818 | 15818 | | |
15819 | 15819 | | |
15820 | | - | |
| 15820 | + | |
15821 | 15821 | | |
15822 | 15822 | | |
15823 | 15823 | | |
| |||
15841 | 15841 | | |
15842 | 15842 | | |
15843 | 15843 | | |
15844 | | - | |
| 15844 | + | |
15845 | 15845 | | |
15846 | 15846 | | |
15847 | | - | |
| 15847 | + | |
15848 | 15848 | | |
15849 | 15849 | | |
15850 | 15850 | | |
| |||
0 commit comments