diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2018-12-11 11:11:37 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-12-11 11:11:37 +0000 |
commit | 78326189ea22b44e238daeb79cde3aa9171b8d15 (patch) | |
tree | 6713d9d5083a4a32e5cd5b92ac41ba9f35f4019c /gcc/ada/gcc-interface/decl.c | |
parent | 6186a6ef3c5d54134e68a0f54ad736e405876269 (diff) | |
download | gcc-78326189ea22b44e238daeb79cde3aa9171b8d15.zip gcc-78326189ea22b44e238daeb79cde3aa9171b8d15.tar.gz gcc-78326189ea22b44e238daeb79cde3aa9171b8d15.tar.bz2 |
[Ada] Plug small loophole with pathological packed array type
This fixes a crash in gigi on a pathological packed array type, whose
component type is a record type without representation clause or packing
but with a clause that bumps its size to a non-multiple value of the
storage unit. In this case, the front-end fails to detect that calls
to the packing manpulation routines of the run time are necessary.
The fix doesn't change anything for non-pathological cases, i.e. when
the component type has a representation clause or is packed.
2018-12-11 Eric Botcazou <ebotcazou@adacore.com>
gcc/ada/
* exp_aggr.adb (Packed_Array_Aggregate_Handled): Bail out for
any non-scalar type as component type of the array.
gcc/testsuite/
* gnat.dg/packed_array.adb, gnat.dg/packed_array.ads,
gnat.dg/packed_array_pkg.ads: New testcase.
From-SVN: r267006
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
0 files changed, 0 insertions, 0 deletions