diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-01-06 13:24:18 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-01-16 15:44:55 +0100 |
commit | 00fdfe9de2e2205330f312364b3b60fca3005b61 (patch) | |
tree | e184f11e8bb2c22477b6d8078b7c6faf314a4e83 /gcc/ada/gcc-interface/utils.cc | |
parent | 1f038e845bbdeae9dddf1810fb3e6c9ad1b79f13 (diff) | |
download | gcc-00fdfe9de2e2205330f312364b3b60fca3005b61.zip gcc-00fdfe9de2e2205330f312364b3b60fca3005b61.tar.gz gcc-00fdfe9de2e2205330f312364b3b60fca3005b61.tar.bz2 |
ada: Fix premature finalization of temporaries for interface objects
This restores the proper finalization of temporaries for interface objects
in the case where the initializing expression is not of an interface type.
It turns out that neither Is_Temporary_For_Interface_Object nor its previous
incarnation are sufficient to catch all the various cases, so it is replaced
by a small enhancement to Is_Aliased, which is more robust.
gcc/ada/
* exp_util.adb (Is_Temporary_For_Interface_Object): Delete.
(Is_Finalizable_Transient.Is_Aliased): Deal with the specific case
of temporaries generated for interface objects.
Diffstat (limited to 'gcc/ada/gcc-interface/utils.cc')
0 files changed, 0 insertions, 0 deletions