[Ada] Wrong value after assignment of overlain record objects
authorJustin Squirek <squirek@adacore.com>
Tue, 31 Jul 2018 09:56:04 +0000 (09:56 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 31 Jul 2018 09:56:04 +0000 (09:56 +0000)
commita7576e13569b4d6bce28c54ddb139a9119a713d8
tree3e37d2614ba222b3374f877887dab68baff6c29a
parent007443a0c1bb11ae55a43d562f070aba88a607c6
[Ada] Wrong value after assignment of overlain record objects

This patch corrects an issue whereby objects of a record type with a
representation clause which are overlain by address would fail to get
assigned values properly when one or both of said objects were marked
volatile.

2018-07-31  Justin Squirek  <squirek@adacore.com>

gcc/ada/

* exp_ch5.adb (Make_Field_Assign): Force temporarily generated
objects for assignment of overlaid user objects to be renamings
instead of constant declarations.

gcc/testsuite/

* gnat.dg/addr11.adb: New testcase.

From-SVN: r263098
gcc/ada/ChangeLog
gcc/ada/exp_ch5.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/addr11.adb [new file with mode: 0644]