Commit d99565f8 by Arnaud Charlet

[multiple changes]

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.

From-SVN: r216960
parent 2ef05128
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> 2014-10-31 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Check_And_Split_Unconstrained_Function): Do not * inline.adb (Check_And_Split_Unconstrained_Function): Do not
......
...@@ -2659,7 +2659,9 @@ package body Inline is ...@@ -2659,7 +2659,9 @@ package body Inline is
-- Body_To_Inline is also set for renamings (see sinfo.ads) -- Body_To_Inline is also set for renamings (see sinfo.ads)
elsif Nkind (Orig_Bod) in N_Entity then 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 -- Skip inlining if the function returns an unconstrained type using
-- an extended return statement since this part of the new inlining -- an extended return statement since this part of the new inlining
......
...@@ -9197,8 +9197,9 @@ package body Sem_Ch13 is ...@@ -9197,8 +9197,9 @@ package body Sem_Ch13 is
-- particular, no need to pester user about rep clauses that violate -- particular, no need to pester user about rep clauses that violate
-- the rule on constant addresses, given that these clauses will be -- the rule on constant addresses, given that these clauses will be
-- removed by Freeze before they reach the back end. -- 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); Check_Expr_Constants (Expr);
end if; end if;
end Check_Constant_Address_Clause; end Check_Constant_Address_Clause;
......
...@@ -6740,7 +6740,7 @@ package body Sem_Res is ...@@ -6740,7 +6740,7 @@ package body Sem_Res is
-- Local variables -- Local variables
E : constant Entity_Id := Entity (N); E : constant Entity_Id := Entity (N);
Par : constant Node_Id := Parent (N); Par : Node_Id;
-- Start of processing for Resolve_Entity_Name -- Start of processing for Resolve_Entity_Name
...@@ -6846,6 +6846,15 @@ package body Sem_Res is ...@@ -6846,6 +6846,15 @@ package body Sem_Res is
Eval_Entity_Name (N); Eval_Entity_Name (N);
end if; 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 -- An effectively volatile object subject to enabled properties
-- Async_Writers or Effective_Reads must appear in a specific context. -- Async_Writers or Effective_Reads must appear in a specific context.
-- The following checks are only relevant when SPARK_Mode is on as they -- The following checks are only relevant when SPARK_Mode is on as they
...@@ -6865,8 +6874,8 @@ package body Sem_Res is ...@@ -6865,8 +6874,8 @@ package body Sem_Res is
null; null;
-- Assume that references to effectively volatile objects that appear -- Assume that references to effectively volatile objects that appear
-- as actual parameters in a procedure call are always legal. The -- as actual parameters in a procedure call are always legal. A full
-- full legality check is done when the actuals are resolved. -- legality check is done when the actuals are resolved.
elsif Nkind (Par) = N_Procedure_Call_Statement then elsif Nkind (Par) = N_Procedure_Call_Statement then
null; null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment