Commit 8d2a01a
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 3db322e commit 8d2a01a
1 file changed
+3
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16291 | 16291 | | |
16292 | 16292 | | |
16293 | 16293 | | |
16294 | | - | |
| 16294 | + | |
16295 | 16295 | | |
16296 | 16296 | | |
16297 | 16297 | | |
| |||
16315 | 16315 | | |
16316 | 16316 | | |
16317 | 16317 | | |
16318 | | - | |
| 16318 | + | |
16319 | 16319 | | |
16320 | 16320 | | |
16321 | | - | |
| 16321 | + | |
16322 | 16322 | | |
16323 | 16323 | | |
16324 | 16324 | | |
| |||
0 commit comments