+2013-04-11 Javier Miranda <miranda@adacore.com>
+
+ * check.ads, exp_ch6.adb (Install_Null_Excluding_Check): No check in
+ interface thunks since it is performed at the caller side.
+ (Expand_Simple_Function_Return): No accessibility check needed in thunks
+ since the check is done by the target routine.
+
2013-04-11 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Priority): pre-analyze
return;
end if;
+ -- No check needed in interface thunks since the runtime check is
+ -- already performed at the caller side.
+
+ if Is_Thunk (Current_Scope) then
+ return;
+ end if;
+
-- No check needed for the Get_Current_Excep.all.all idiom generated by
-- the expander within exception handlers, since we know that the value
-- can never be null.
-- return expression has a specific type whose level is known not to
-- be statically deeper than the function's result type.
+ -- No runtime check needed in interface thunks since it is performed
+ -- by the target primitive associated with the thunk.
+
-- Note: accessibility check is skipped in the VM case, since there
-- does not seem to be any practical way to implement this check.
elsif Ada_Version >= Ada_2005
and then Tagged_Type_Expansion
and then Is_Class_Wide_Type (R_Type)
+ and then not Is_Thunk (Current_Scope)
and then not Scope_Suppress.Suppress (Accessibility_Check)
and then
(Is_Class_Wide_Type (Etype (Exp))