r262797 - in /trunk/gcc: ada/ChangeLog ada/exp_...

pmderodat@gcc.gnu.org pmderodat@gcc.gnu.org
Tue Jul 17 08:11:00 GMT 2018


Author: pmderodat
Date: Tue Jul 17 08:11:43 2018
New Revision: 262797

URL: https://gcc.gnu.org/viewcvs?rev=262797&root=gcc&view=rev
Log:
[Ada] Fix incompatibility Default_Scalar_Storage_Order/tagged types

The pragma Default_Scalar_Storage_Order cannot reliably be used to set the
non-default scalar storage order for a program that declares tagged types, if
it also declares user-defined primitives.

This is fixed by making Make_Tags use the same base array type as Make_DT and
Make_Secondary_DT when accessing the array of user-defined primitives.

2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* exp_disp.adb (Make_Tags): When the type has user-defined primitives,
	build the access type that is later used by Build_Get_Prim_Op_Address
	as pointing to a subtype of Ada.Tags.Address_Array.

gcc/testsuite/

	* gnat.dg/sso10.adb, gnat.dg/sso10_pkg.ads: New testcase.

Added:
    trunk/gcc/testsuite/gnat.dg/sso10.adb
    trunk/gcc/testsuite/gnat.dg/sso10_pkg.ads
Modified:
    trunk/gcc/ada/ChangeLog
    trunk/gcc/ada/exp_disp.adb
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list