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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |ebotcazou at gcc dot gnu.org
            Summary|Finalization exception      |finalization issue with
                   |issue with anonymous access |anonymous access object of
                   |object.                     |local type
   Last reconfirmed|                            |2024-02-14
     Ever confirmed|0                           |1

--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
The problem is that the finalization routine of Float_Sanitized.Container is
local to Test01 but is invoked indirectly from "its enclosing library unit"
when the dynamically allocated object is finalized, namely the enclosing
procedure.
So it's a plain dangling reference and its effects depend on the phase of the
moon, for example the mere presence of Test02.

The workaround is of course to follow the advice of the warning or else to move
the instantiation of Float_Sanitized to the enclosing procedure.

Reply via email to