ada: Fix again internal error on abstract primitive with access result

The previous fix was papering over the root cause, which is that the itype
built for the anonymous access result type of a derived subprogram is given
the subprogram itself as Scope, instead of the scope of the subprogram. The
incorrect code also temporarily sets the Scope of the subprogram to itself!

gcc/ada/ChangeLog:

	* accessibility.adb (Type_Access_Level): Revert ealier change.
	* sem_ch3.adb (Derive_Subprogram.Replace_Type): Set the Scope of
	the new anonymous access type to the scope of the derived type.
	Do not (temporarily) sets the Scope of the subprogram to itself.
2 files changed