From: Piotr Trojanek <troja...@adacore.com>

Code cleanup; behavior is unaffected.

gcc/ada/ChangeLog:

        * sem_ch5.adb (Check_Call): Reuse Get_Called_Entity.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/sem_ch5.adb | 24 ++----------------------
 1 file changed, 2 insertions(+), 22 deletions(-)

diff --git a/gcc/ada/sem_ch5.adb b/gcc/ada/sem_ch5.adb
index 2a5c8dcdbe5..944259a532a 100644
--- a/gcc/ada/sem_ch5.adb
+++ b/gcc/ada/sem_ch5.adb
@@ -4536,34 +4536,14 @@ package body Sem_Ch5 is
       ----------------
 
       function Check_Call (N : Node_Id) return Traverse_Result is
-         Nam  : Node_Id;
          Subp : Entity_Id;
-         Typ  : Entity_Id;
 
       begin
          if Nkind (N) = N_Function_Call then
-            Nam := Name (N);
-
-            --  Obtain the subprogram being invoked
-
-            loop
-               if Nkind (Nam) = N_Explicit_Dereference then
-                  Nam := Prefix (Nam);
-
-               elsif Nkind (Nam) = N_Selected_Component then
-                  Nam := Selector_Name (Nam);
-
-               else
-                  exit;
-               end if;
-            end loop;
-
-            Subp := Entity (Nam);
+            Subp := Get_Called_Entity (N);
 
             if Present (Subp) then
-               Typ := Etype (Subp);
-
-               if Requires_Transient_Scope (Typ) then
+               if Requires_Transient_Scope (Etype (Subp)) then
                   return Abandon;
 
                elsif Sec_Stack_Needed_For_Return (Subp) then
-- 
2.43.0

Reply via email to