aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-array-bounds.h
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2020-11-22 14:29:54 +0100
committerIain Buclaw <ibuclaw@gdcproject.org>2020-11-22 19:39:26 +0100
commit23045f8b062e20672f5170fc66532de7a5d9a1d6 (patch)
tree1e2a2b9df94c72efa445409d083af872edc578df /gcc/gimple-array-bounds.h
parentc1fb592f2c3c6b5a6616cf882ce24d30e167a646 (diff)
downloadgcc-23045f8b062e20672f5170fc66532de7a5d9a1d6.zip
gcc-23045f8b062e20672f5170fc66532de7a5d9a1d6.tar.gz
gcc-23045f8b062e20672f5170fc66532de7a5d9a1d6.tar.bz2
d: Fix OutOfMemoryError thrown when appending to an array with a side effect
When appending a character to an array, the result of that concat assignment was not the new value of the array, similarly, when appending an array to another array, side effects were evaluated in reverse to the expected order of evaluation. As of this change, the address of the left-hand side expression is saved and re-used as the result. Its evaluation is now also forced to occur before the concat operation itself is called. gcc/d/ChangeLog: PR d/97889 * expr.cc (ExprVisitor::visit (CatAssignExp *)): Enforce LTR order of evaluation on left and right hand side expressions. gcc/testsuite/ChangeLog: PR d/97889 * gdc.dg/torture/pr97889.d: New test.
Diffstat (limited to 'gcc/gimple-array-bounds.h')
0 files changed, 0 insertions, 0 deletions