ada: Constant_Indexing used when context requires a variable

In the case of an assignment where the type of its left hand side
is an indexable container that has indexable container components
(for example a container vector of container vectors), and both
indexable containers have Constant_Indexing and Variable_Indexing
aspects, the left hand side of the assignment is erroneously
interpreted as constant indexing. The error results in spurious
compile-time error messages saying that the left hand side of
the assignment must be a variable.

gcc/ada/ChangeLog:

	* sem_ch4.adb (Constant_Indexing_OK): Add missing support for
	RM 4.1.6(13/3), and improve performance to avoid climbing more
	than needed. Add documentation.
	(Try_Indexing_Function): New subprogram.
	(Expr_Matches_In_Formal): Added new formals.
	(Handle_Selected_Component): New subprogram.
	(Has_IN_Mode): New subprogram.
	(Try_Container_Indexing): Add documentation, code reorganization
	and extend its functionality to improve its support for prefixed
	notation calls.
1 file changed