[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 31 Oct 2014 11:12:14 +0000 (12:12 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 31 Oct 2014 11:12:14 +0000 (12:12 +0100)
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

gcc/ada/ChangeLog
gcc/ada/inline.adb
gcc/ada/sem_ch13.adb
gcc/ada/sem_res.adb

index bb1854628c230f5504d408c53af5b38ea7d88499..37e32f928fcb945aeb04b4534d43ad28d80d609f 100644 (file)
@@ -1,3 +1,19 @@
+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
index 7f0d54b79443d4a3487ae54186e0db39cddc4ae6..8157bf20a258b327ef4d339e786e1ccc3d005a22 100644 (file)
@@ -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
index 86f70d01b2ff44b9310fd9effde9b6ca1b39eea2..826b3dc18a4539cacfcb405995386f7158231ac0 100644 (file)
@@ -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;
index 31dfe5fee8d9f92b6cf85f10f75d9ecdcc9b5e01..973c0d899a8ee27850dc6b172c30655e7f8c686c 100644 (file)
@@ -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;