Skip to content
Snippets Groups Projects
Commit 39c07c5a authored by Eric Botcazou's avatar Eric Botcazou
Browse files

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.
parent bb98f71b
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment