[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 19 Sep 2011 08:21:37 +0000 (10:21 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 19 Sep 2011 08:21:37 +0000 (10:21 +0200)
2011-09-19  Robert Dewar  <dewar@adacore.com>

* sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb,
exp_aggr.adb: Minor reformatting.

2011-09-19  Yannick Moy  <moy@adacore.com>

* lib-xref.adb (Generate_Reference): Change entity referenced
to underlying object if any, or else reference to the HEAP.

From-SVN: r178956

gcc/ada/ChangeLog
gcc/ada/exp_aggr.adb
gcc/ada/lib-writ.ads
gcc/ada/lib-xref.adb
gcc/ada/s-restri.ads
gcc/ada/sem_aggr.adb
gcc/ada/sem_ch6.adb

index 3634ebc52b08390bc9f6f1d410213141a8f774f0..c4d2dccb2d9c80b4e96314a1e1b393bb61d51d91 100644 (file)
@@ -1,3 +1,13 @@
+2011-09-19  Robert Dewar  <dewar@adacore.com>
+
+       * sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb,
+       exp_aggr.adb: Minor reformatting.
+
+2011-09-19  Yannick Moy  <moy@adacore.com>
+
+       * lib-xref.adb (Generate_Reference): Change entity referenced
+       to underlying object if any, or else reference to the HEAP.
+
 2011-09-15  Arnaud Charlet  <charlet@adacore.com>
 
        * gcc-interface/Make-lang.in: Update dependencies.
index 2dd052eb8f5bbdc420427ea32e2c41966c37fa80..82b73188b267995c94d6c7efcf6ab62800d192ed 100644 (file)
@@ -4705,7 +4705,6 @@ package body Exp_Aggr is
         and then Static_Elaboration_Desired (Current_Scope)
       then
          Convert_To_Positional (N, Max_Others_Replicate => 100);
-
       else
          Convert_To_Positional (N);
       end if;
@@ -5971,7 +5970,7 @@ package body Exp_Aggr is
 
          if Present (Component_Associations (N)) then
             Convert_To_Positional
-             (N, Max_Others_Replicate => 64, Handle_Bit_Packed => True);
+              (N, Max_Others_Replicate => 64, Handle_Bit_Packed => True);
             return Nkind (N) /= N_Aggregate;
          end if;
 
index f6cf75f6eb5af77c346cb699df1b4e707e47e986..d7bea5ea2c4c3d3a208c1876e90436de0823a725 100644 (file)
@@ -350,7 +350,7 @@ package Lib.Writ is
 
    --  Subsequent R lines are present only if pragma Restriction No_Dependence
    --  is used. There is one such line for each such pragma appearing in the
-   --  extended main unit. The format is
+   --  extended main unit. The format is:
 
    --    R unit_name
 
index f16e8abbdc4c851fbf846406167945ce19afd1e8..e9de179f0c07ad3ada81d4a60f0bece496abbbe7 100644 (file)
@@ -951,6 +951,33 @@ package body Lib.Xref is
             return;
          end if;
 
+         --  In Alfa mode, consider the underlying entity renamed instead of
+         --  the renaming, which is needed to compute a valid set of effects
+         --  (reads, writes) for the enclosing subprogram.
+
+         if Alfa_Mode
+           and then Is_Object (Ent)
+           and then Present (Renamed_Object (Ent))
+         then
+            Ent := Get_Enclosing_Object (Renamed_Object (Ent));
+
+            --  If no enclosing object, then it could be a reference to any
+            --  location not tracked individually, like heap-allocated data.
+            --  Conservatively approximate this possibility by generating a
+            --  dereference, and return.
+
+            if No (Ent) then
+               if Actual_Typ = 'w' then
+                  Alfa.Generate_Dereference (Nod, 'r');
+                  Alfa.Generate_Dereference (Nod, 'w');
+               else
+                  Alfa.Generate_Dereference (Nod, 'r');
+               end if;
+
+               return;
+            end if;
+         end if;
+
          --  Record reference to entity
 
          Ref := Original_Location (Sloc (Nod));
index cd447c1b0b460ea81fb9fbd971cfc034f24919aa..0085548f98473d2d945900caab30122462c96c54 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2011, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -49,7 +49,10 @@ package System.Restrictions is
    package Rident is new System.Rident;
 
    Run_Time_Restrictions : Rident.Restrictions_Info;
-   --  Restrictions as set by the user, or detected by the binder.
+   --  Restrictions as set by the user, or detected by the binder. See details
+   --  in package System.Rident for what restrictions are included in the list
+   --  and the format of the information.
+   --
    --  Note that a restriction which is both Set and Violated at run-time means
    --  that the violation was detected as part of the Ada run-time and not
    --  as part of user code.
index 4af133c2367139ef869b65deb5b517f48a5afe58..657ece339b12130de86513ccf1ddc7469567fe50 100644 (file)
@@ -745,8 +745,8 @@ package body Sem_Aggr is
 
    begin
       --  All the components of List are matched against Component and a count
-      --  is maintained of possible misspellings. When at the end of the
-      --  the analysis there are one or two (not more!) possible misspellings,
+      --  is maintained of possible misspellings. When at the end of the the
+      --  analysis there are one or two (not more!) possible misspellings,
       --  these misspellings will be suggested as possible correction.
 
       Component_Elmt := First_Elmt (Elements);
index 6740dd6b830fad0486d4fe663a96c5c83cdef4e5..fd87387eaee71ec6869fb8da23efd7928dfd96ca 100644 (file)
@@ -326,8 +326,9 @@ package body Sem_Ch6 is
            Make_Subprogram_Declaration (Loc,
              Specification => Copy_Separate_Tree (Specification (N)));
 
-         --  Do rewrite setting Comes_From_Source on the result if the original
-         --  expression function came from source.
+         --  Do rewrite propagating the information that an expression function
+         --  comes from source (otherwise references to this entity are not
+         --  stored).
 
          Rewrite (N, New_Decl);
          Set_Comes_From_Source