aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2020-05-25 09:18:03 +0200
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-17 13:04:14 -0300
commit2ed648bd3c5a3b72da3232938f3beaa87fde7e2d (patch)
tree0739318587e039194516d3760d1f56af5e860549 /gcc/ada/gcc-interface/utils.c
parent8ab3e393c546431044fbd7c54317acc040e660c9 (diff)
downloadgcc-2ed648bd3c5a3b72da3232938f3beaa87fde7e2d.zip
gcc-2ed648bd3c5a3b72da3232938f3beaa87fde7e2d.tar.gz
gcc-2ed648bd3c5a3b72da3232938f3beaa87fde7e2d.tar.bz2
Fix wrong assignment to mutable Out parameter of task entry
Under very specific circumstances the compiler can generate a wrong assignment to a mutable record object which contains an array component, because it does not correctly handle the update of the discriminant. gcc/ada/ChangeLog * gcc-interface/gigi.h (operand_type): New static inline function. * gcc-interface/trans.c (gnat_to_gnu): Do not suppress conversion to the resulty type at the end for array types. * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not remove conversions between array types on the LHS. gcc/testsuite/ChangeLog * gnat.dg/array39.adb: New test. * gnat.dg/array39_pkg.ads: New helper. * gnat.dg/array39_pkg.adb: Likewise.
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
0 files changed, 0 insertions, 0 deletions