aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils.cc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2023-01-06 13:24:18 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-01-16 15:44:55 +0100
commit00fdfe9de2e2205330f312364b3b60fca3005b61 (patch)
treee184f11e8bb2c22477b6d8078b7c6faf314a4e83 /gcc/ada/gcc-interface/utils.cc
parent1f038e845bbdeae9dddf1810fb3e6c9ad1b79f13 (diff)
downloadgcc-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