https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113893

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Eric Botcazou
<ebotca...@gcc.gnu.org>:

https://gcc.gnu.org/g:1a915f6ab52eff19eb3c890a127c6693c8ce4f65

commit r12-10178-g1a915f6ab52eff19eb3c890a127c6693c8ce4f65
Author: Eric Botcazou <ebotca...@adacore.com>
Date:   Mon Feb 26 13:13:34 2024 +0100

    Finalization of object allocated by anonymous access designating local type

    The finalization of objects dynamically allocated through an anonymous
    access type is deferred to the enclosing library unit in the current
    implementation and a warning is given on each of them.

    However this cannot be done if the designated type is local, because this
    would generate dangling references to the local finalization routine, so
    the finalization needs to be dropped in this case and the warning adjusted.

    gcc/ada/
            PR ada/113893
            * exp_ch7.adb (Build_Anonymous_Master): Do not build the master
            for a local designated type.
            * exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin
            to false if no finalization master is attached to an access type
            and assert that it is anonymous in this case.
            * sem_res.adb (Resolve_Allocator): Mention that the object might
            not be finalized at all in the warning given when the type is an
            anonymous access-to-controlled type.

    gcc/testsuite/
            * gnat.dg/access10.adb: New test.

Reply via email to