aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch6.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/exp_ch6.adb')
-rw-r--r--gcc/ada/exp_ch6.adb11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index 82311e1..989dc1a 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -3670,6 +3670,16 @@ package body Exp_Ch6 is
return;
end if;
+ -- Avoid generation of temporaries for unreferenced formals
+
+ -- What is going on here ??? test below is for *PRAGMA* unreferenced
+ -- not for an unreferenced formal. Is this a bug fix, or simply an
+ -- optimization. Needs comment fix and explanation ???
+
+ if Has_Pragma_Unreferenced (F) then
+ goto Continue;
+ end if;
+
-- If the argument may be a controlling argument in a call within
-- the inlined body, we must preserve its classwide nature to insure
-- that dynamic dispatching take place subsequently. If the formal
@@ -3790,6 +3800,7 @@ package body Exp_Ch6 is
Set_Renamed_Object (F, Temp);
end if;
+ <<Continue>>
Next_Formal (F);
Next_Actual (A);
end loop;