[gcc(refs/users/guojiufu/heads/guojiufu-branch)] [Ada] Add missing conversion in call to Finalize primitive

Jiu Fu Guo guojiufu@gcc.gnu.org
Wed Jun 10 03:33:37 GMT 2020


https://gcc.gnu.org/g:25a76d621a4b6e324777677c8a5a81c09da2db9d

commit 25a76d621a4b6e324777677c8a5a81c09da2db9d
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Jan 29 16:15:09 2020 +0100

    [Ada] Add missing conversion in call to Finalize primitive
    
    2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * exp_ch7.adb (Make_Final_Call): Set the type of the object, if
            it is unanalyzed, before calling Convert_View on it.

Diff:
---
 gcc/ada/exp_ch7.adb | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index fbdef9be497..ed4e8c570e6 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -8432,6 +8432,15 @@ package body Exp_Ch7 is
                end if;
             end;
 
+            --  If the object is unanalyzed, set its expected type for use in
+            --  Convert_View in case an additional conversion is needed.
+
+            if No (Etype (Ref))
+              and then Nkind (Ref) /= N_Unchecked_Type_Conversion
+            then
+               Set_Etype (Ref, Typ);
+            end if;
+
             Ref := Convert_View (Fin_Id, Ref);
          end if;


More information about the Gcc-cvs mailing list