[Ada] Spurious conformance error on expression function

gcc/ada/

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
	conformance check when the subprogram body has been created for
	an expression function that is not a completion of a previous
	specification, because the profile of the constructed body is
	copied from the expression function itself.
This commit is contained in:
Ed Schonberg 2021-05-01 19:55:36 -04:00 committed by Pierre-Marie de Rodat
parent 0b2e951488
commit daf9bc6aea

View File

@ -4585,6 +4585,17 @@ package body Sem_Ch6 is
then
Conformant := True;
-- Finally, a body generated for an expression function copies
-- the profile of the function and no check is needed either.
-- If the body is the completion of a previous function
-- declared elsewhere, the conformance check is required.
elsif Nkind (N) = N_Subprogram_Body
and then Was_Expression_Function (N)
and then Sloc (Spec_Id) = Sloc (Body_Id)
then
Conformant := True;
else
Check_Conformance
(Body_Id, Spec_Id,