aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2018-08-21 14:46:40 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-08-21 14:46:40 +0000
commit294e7bbb9eb0b1f8d0484e9ddb562a08f7505cab (patch)
tree4f070890782e75ac457fb293811a7608860bb10c /gcc/ada/gcc-interface
parent2e5df2955f9ec8deafeb2978fcb38fb99f2660fd (diff)
downloadgcc-294e7bbb9eb0b1f8d0484e9ddb562a08f7505cab.zip
gcc-294e7bbb9eb0b1f8d0484e9ddb562a08f7505cab.tar.gz
gcc-294e7bbb9eb0b1f8d0484e9ddb562a08f7505cab.tar.bz2
[Ada] Fix internal error on extension of record with representation clause
This fixes a long-standing issue present for extensions of tagged record types with a representation clause: the clause is correctly inherited for components inherited in the extension but the position and size are not, which fools the logic of Is_Possibly_Unaligned_Object. This can result in an attempt to take the address of a component not aligned on a byte boundary, which is then flagged as an internal error. 2018-08-21 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_util.adb (Is_Possibly_Unaligned_Object): For the case of a selected component inherited in a record extension and subject to a representation clause, retrieve the position and size from the original record component. gcc/testsuite/ * gnat.dg/rep_clause7.adb: New testcase. From-SVN: r263717
Diffstat (limited to 'gcc/ada/gcc-interface')
0 files changed, 0 insertions, 0 deletions