aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/Make-lang.in
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2019-08-13 08:06:34 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-08-13 08:06:34 +0000
commit7225a4797180b6dc515760b0c123001cda2b66a2 (patch)
treec424bf1218d198f8bb88e58717a84c045bb839dc /gcc/ada/gcc-interface/Make-lang.in
parent4c19aa690451fbd5d84ce1534a903163e67182e3 (diff)
downloadgcc-7225a4797180b6dc515760b0c123001cda2b66a2.zip
gcc-7225a4797180b6dc515760b0c123001cda2b66a2.tar.gz
gcc-7225a4797180b6dc515760b0c123001cda2b66a2.tar.bz2
[Ada] Wrong initialization of Offset_To_Top in secondary DT
The compiler does not initialize well the runtime information required to perform at runtime interface conversions on derivations of tagged types that implement interfaces and have variable size components. 2019-08-13 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_disp.adb (Make_Secondary_DT): Handle record type derivations that have interface components located at fixed positions and interface components located at variable offset. The offset of components located at fixed positions is computed using the dummy object (similar to the case where all the interface components are located at fixed positions). (Make_DT): Build the dummy object for all tagged types that implement interface types (that is, build it also for types with variable size components), and use the dummy object to compute the offset of all tag components located at fixed positions when initializing the Interface_Table object. gcc/testsuite/ * gnat.dg/tag2.adb, gnat.dg/tag2_pkg.ads: New testcase. From-SVN: r274335
Diffstat (limited to 'gcc/ada/gcc-interface/Make-lang.in')
0 files changed, 0 insertions, 0 deletions