diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2024-11-12 19:46:12 +0100 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2024-11-26 10:49:36 +0100 |
commit | 84d8a383c9fe80bd9c4e364505247ef025e1c2b6 (patch) | |
tree | fae9357431a776897b7c8593c4290576bea77eb4 /contrib/dglib.pm | |
parent | 936f9f1d159bd6ef3b1e25e72a6abd1c0fff10b1 (diff) | |
download | gcc-84d8a383c9fe80bd9c4e364505247ef025e1c2b6.zip gcc-84d8a383c9fe80bd9c4e364505247ef025e1c2b6.tar.gz gcc-84d8a383c9fe80bd9c4e364505247ef025e1c2b6.tar.bz2 |
ada: Add minimal support for address clause/aspect on controlled objects
The clause and aspect have been accepted by the compiler for a few years,
but the result is generally an internal compiler error or an incorrect
finalization at run time.
gcc/ada/ChangeLog:
* exp_ch3.adb (Expand_N_Object_Declaration): Do not insert the tag
assignment there if the object has the Address aspect.
* exp_ch7.adb: Add clauses for Aspect package.
(Build_Finalizer.Process_Object_Declaration): Deal with an object
with delayed freezing.
(Insert_Actions_In_Scope_Around): If the target is the declaration
of an object with address clause or aspect, move all the statements
that have been inserted after it into the Initialization_Statements
list of the object.
* freeze.adb (Check_Address_Clause): Do not reassign the tag here,
instead set the appropriate flag on the assignment statement.
Diffstat (limited to 'contrib/dglib.pm')
0 files changed, 0 insertions, 0 deletions