From: charlet Date: Fri, 31 Oct 2014 11:12:14 +0000 (+0000) Subject: 2014-10-31 Arnaud Charlet X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f1a9be43ea5e913164bbb216f155853a9c024827;p=thirdparty%2Fgcc.git 2014-10-31 Arnaud Charlet * sem_ch13.adb (Check_Constant_Address_Clause): Disable checks on address clauses in CodePeer mode. 2014-10-31 Javier Miranda * inline.adb (Expand_Inlined_Call): Do not skip inlining of calls to subprogram renamings. 2014-10-31 Hristian Kirtchev * sem_res.adb (Resolve_Entity_Name): Account for the case where the immediate parent of a reference to an entity is a parameter association. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216960 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index bb1854628c23..37e32f928fcb 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,19 @@ +2014-10-31 Arnaud Charlet + + * sem_ch13.adb (Check_Constant_Address_Clause): Disable checks + on address clauses in CodePeer mode. + +2014-10-31 Javier Miranda + + * inline.adb (Expand_Inlined_Call): Do not skip + inlining of calls to subprogram renamings. + +2014-10-31 Hristian Kirtchev + + * 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 * inline.adb (Check_And_Split_Unconstrained_Function): Do not diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb index 7f0d54b79443..8157bf20a258 100644 --- a/gcc/ada/inline.adb +++ b/gcc/ada/inline.adb @@ -2659,7 +2659,9 @@ package body Inline is -- 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 diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index 86f70d01b2ff..826b3dc18a45 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -9197,8 +9197,9 @@ package body Sem_Ch13 is -- 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; diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index 31dfe5fee8d9..973c0d899a8e 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -6740,7 +6740,7 @@ package body Sem_Res is -- Local variables E : constant Entity_Id := Entity (N); - Par : constant Node_Id := Parent (N); + Par : Node_Id; -- Start of processing for Resolve_Entity_Name @@ -6846,6 +6846,15 @@ package body Sem_Res is 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 @@ -6865,8 +6874,8 @@ package body Sem_Res is 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;