Commit eb48619
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 710c0a6 commit eb48619Copy full SHA for eb48619
File tree
Expand file treeCollapse file tree
1 file changed
+3
-3
lines changedOpen diff view settings
Filter options
- src/backend/parser
Expand file treeCollapse file tree
1 file changed
+3
-3
lines changedOpen diff view settings
Collapse file
+3-3Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
14533 | 14533 | |
14534 | 14534 | |
14535 | 14535 | |
14536 | | - |
| 14536 | + |
14537 | 14537 | |
14538 | 14538 | |
14539 | 14539 | |
| ||
14557 | 14557 | |
14558 | 14558 | |
14559 | 14559 | |
14560 | | - |
| 14560 | + |
14561 | 14561 | |
14562 | 14562 | |
14563 | | - |
| 14563 | + |
14564 | 14564 | |
14565 | 14565 | |
14566 | 14566 | |
|
0 commit comments