diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-02-22 17:00:06 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-05-23 09:59:06 +0200 |
commit | 544d5ff153b3470126cd2c9095617c1c084d418d (patch) | |
tree | cbd53567b4ae07c49696680b04676534fe29549e /gcc/ada/usage.adb | |
parent | 6efcce36f571da77a7122d3d1ae75739d744fe88 (diff) | |
download | gcc-544d5ff153b3470126cd2c9095617c1c084d418d.zip gcc-544d5ff153b3470126cd2c9095617c1c084d418d.tar.gz gcc-544d5ff153b3470126cd2c9095617c1c084d418d.tar.bz2 |
ada: Fix address arithmetic issues in the expanded code
This is most notably the addition of addresses in Expand_Interface_Thunk.
There is also a small change to Expand_Dispatching_Call, which was directly
accessing a class-wide interface object as a tag, thus giving rise later to
unchecked conversions between either the root or the equivalent record type
and access types.
gcc/ada/
* exp_disp.adb (Expand_Dispatching_Call): In the abstract interface
class-wide case, use 'Tag of the object as the controlling tag.
(Expand_Interface_Thunk): Perform address arithmetic using operators
of System.Storage_Elements.
Diffstat (limited to 'gcc/ada/usage.adb')
0 files changed, 0 insertions, 0 deletions