From: Javier Miranda <mira...@adacore.com> gcc/ada/
* exp_ch6.adb (Build_Static_Check_Helper_Call): Perform implicit type conversion to ensure matching types and avoid reporting spurious errors. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_ch6.adb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index 7555bf5dcf5..c026b63fcf6 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -7552,9 +7552,10 @@ package body Exp_Ch6 is Remove_Side_Effects (A); - if Is_Controlling_Actual (A) - and then Etype (F) /= Etype (A) - then + -- Ensure matching types to avoid reporting spurious errors since + -- the called helper may have been built for a parent type. + + if Etype (F) /= Etype (A) then Append_To (Actuals, Unchecked_Convert_To (Etype (F), New_Copy_Tree (A))); else -- 2.34.1