[Ada] Do not propagate Object_Size onto Size for composite types
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 18 Dec 2019 07:14:23 +0000 (07:14 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 18 Dec 2019 07:14:23 +0000 (07:14 +0000)
commit3a4425fd9a818300be9f87abd13f483c5aef9e54
treecb72eae16db99401628f9c28f8e8b851e9a39c83
parentc846eedd56a5ecf28233d5e8fe938d44b3add5f3
[Ada] Do not propagate Object_Size onto Size for composite types

2019-12-18  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* layout.adb (Layout_Type): In the case of composite types, do
not copy the Esize onto the RM_Size if the latter is not set.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>:
Also cap the alignment if an Object_Size clause has been
specified.  Pass VAR_DECL in the call to validate_size for the
Esize of a type.
(validate_size): Be prepared to give an error on an Object_Size
clause.

From-SVN: r279507
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/ada/layout.adb