From: charlet Date: Fri, 18 Mar 2005 11:51:32 +0000 (+0000) Subject: 2005-03-17 Javier Miranda X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d6caf908f1c06b54de27e6591e359606e7e8a0e;p=thirdparty%2Fgcc.git 2005-03-17 Javier Miranda * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and Try_Object_Operation): Analyze the object that is accessible through the prefix of the subprogram call before we apply the transformation of the object-operation notation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96674 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index 21b962cc3fa0..a7931e9c0ac0 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -4805,7 +4805,6 @@ package body Sem_Ch4 is Set_Analyzed (Call_Node, False); Rewrite (Node_To_Replace, Call_Node); Analyze (Node_To_Replace); - end Complete_Object_Operation; -------------------------------- @@ -4920,6 +4919,9 @@ package body Sem_Ch4 is -- Allocate the node only once if not Present (Call_Node_Case) then + Analyze_Expression (Obj); + Set_Analyzed (Obj); + Transform_Object_Operation ( Call_Node => Call_Node_Case, First_Actual => Obj, @@ -5018,6 +5020,9 @@ package body Sem_Ch4 is -- Allocate the node only once if not Present (Call_Node_Case) then + Analyze_Expression (Obj); + Set_Analyzed (Obj); + Transform_Object_Operation ( Call_Node => Call_Node_Case, First_Actual => Obj, @@ -5093,8 +5098,7 @@ package body Sem_Ch4 is if Is_Subprg_Call and then N = Name (Parent (N)) then Actual := First (Parameter_Associations (Parent (N))); while Present (Actual) loop - Analyze (Actual); - Check_Parameterless_Call (Actual); + Analyze_Expression (Actual); Next (Actual); end loop; end if; @@ -5110,6 +5114,9 @@ package body Sem_Ch4 is First_Actual := Obj; end if; + Analyze_Expression (First_Actual); + Set_Analyzed (First_Actual); + -- Build a subprogram call node Transform_Object_Operation (