+2014-10-31 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch13.adb (Check_Constant_Address_Clause): Disable checks
+ on address clauses in CodePeer mode.
+
+2014-10-31 Javier Miranda <miranda@adacore.com>
+
+ * inline.adb (Expand_Inlined_Call): Do not skip
+ inlining of calls to subprogram renamings.
+
+2014-10-31 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_res.adb (Resolve_Entity_Name): Account for
+ the case where the immediate parent of a reference to an entity
+ is a parameter association.
+
2014-10-31 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Check_And_Split_Unconstrained_Function): Do not
-- Body_To_Inline is also set for renamings (see sinfo.ads)
elsif Nkind (Orig_Bod) in N_Entity then
- return;
+ if not Has_Pragma_Inline (Subp) then
+ return;
+ end if;
-- Skip inlining if the function returns an unconstrained type using
-- an extended return statement since this part of the new inlining
-- particular, no need to pester user about rep clauses that violate
-- the rule on constant addresses, given that these clauses will be
-- removed by Freeze before they reach the back end.
+ -- Similarly in CodePeer mode, we want to relax these checks.
- if not Ignore_Rep_Clauses then
+ if not Ignore_Rep_Clauses and not CodePeer_Mode then
Check_Expr_Constants (Expr);
end if;
end Check_Constant_Address_Clause;
-- Local variables
E : constant Entity_Id := Entity (N);
- Par : constant Node_Id := Parent (N);
+ Par : Node_Id;
-- Start of processing for Resolve_Entity_Name
Eval_Entity_Name (N);
end if;
+ Par := Parent (N);
+
+ -- When the entity appears in a parameter association, retrieve the
+ -- related subprogram call.
+
+ if Nkind (Par) = N_Parameter_Association then
+ Par := Parent (Par);
+ end if;
+
-- An effectively volatile object subject to enabled properties
-- Async_Writers or Effective_Reads must appear in a specific context.
-- The following checks are only relevant when SPARK_Mode is on as they
null;
-- Assume that references to effectively volatile objects that appear
- -- as actual parameters in a procedure call are always legal. The
- -- full legality check is done when the actuals are resolved.
+ -- as actual parameters in a procedure call are always legal. A full
+ -- legality check is done when the actuals are resolved.
elsif Nkind (Par) = N_Procedure_Call_Statement then
null;