[COMMITTED] ada: Spurious error on nested call using the prefix notation
Checks
Commit Message
From: Javier Miranda <miranda@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(-)
@@ -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