ada: Fix spurious conflict introduced by Ada 2022 declare expression

This streamlines the resolution of declare expressions in Ada 2022, which
started as a manual name resolution to avoid scope management issues, then
added local visibility support, and eventually added scope management with
a kludge for transient scopes.

Transient scopes are not really scopes but placeholders and, therefore, may
traverse regular scopes when the node they service is higher up.  This also
has uncovered a loophole in Find_Type_Of_Object in the preanalysis case.

gcc/ada/ChangeLog:

	* sem_ch3.adb (Find_Type_Of_Object): In the subtype indication case
	for a stand-alone object, invoke Process_Subtype during preanalysis
	instead of partially reimplementing it.
	* sem_ch5.ads (Has_Sec_Stack_Call): Move back declaration to...
	* sem_ch5.adb (Has_Sec_Stack_Call): ...here.
	* sem_ch4.adb (Analyze_Expression_With_Actions): Deal with transient
	scopes created during analysis.
	* sem_res.adb: Add clauses for Sem_Ch9 package.
	(Resolve_Declare_Expression): Streamline and deal with transient
	scopes created during resolution.
5 files changed