[Ada] Spurious link error with child unit and different Assertion modes.

gcc/ada/

	* exp_util.ads (Force_Evaluation): Add formal parameter
	Discr_Number, to indicate discriminant expression for which an
	external name must be created.
	(Remove_Side_Effects): Ditto.
	* exp_util.adb (Force_Evaluation): Call Remove_Side_Effects with
	added parameter.
	(Remove_Side_Effects, Build_Temporary): If Discr_Number is
	positive, create an external name with suffix DISCR and the
	given discriminant number, analogous to what is done for
	temporaries for array type bounds.
	* sem_ch3.adb (Process_Discriminant_Expressions): If the
	constraint is for an object or component declaration and the
	corresponding entity may be visible in another unit, invoke
	Force_Evaluation with the new parameter.
3 files changed