ada: Fix incorrect finalization of renamed function call at library level

This is a regression present in recent releases for the peculiar case of the
renaming of a controlled function call done at library level, which causes
the compiler to create a dangling reference to a temporary created on the
stack of the elaboration routine to hold the result of the function call.

gcc/ada/ChangeLog:

	* exp_ch6.adb (Expand_Ctrl_Function_Call): Bail out for the name
	of an object renaming declaration at library level, if the call
	does not return on the secondary stack.
	* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Rewrite the
	renaming as a regular object declaration if it is declared at
	library level and the name is a controlled function call whose
	result is not returned on the secondary stack.
	* exp_util.adb (Rewrite_Object_Declaration_As_Renaming): Minor fix.
3 files changed