2014-07-31 Javier Miranda <miranda@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Jul 2014 13:02:24 +0000 (13:02 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Jul 2014 13:02:24 +0000 (13:02 +0000)
* debug.adb: Complete documentation of -gnatd.z.

2014-07-31  Bob Duff  <duff@adacore.com>

* gnat_ugn.texi: Minor doc fixes.

2014-07-31  Robert Dewar  <dewar@adacore.com>

* sem_aggr.adb (Resolve_Array_Aggregate): Fix posting of missing
index value.

2014-07-31  Tristan Gingold  <gingold@adacore.com>

* s-unstyp.ads (Packed_Byte): Make this type universal aliasing.
(Packed_Bytes1): Make component aliased.

2014-07-31  Robert Dewar  <dewar@adacore.com>

* s-unstyp.ads, s-fileio.adb: Minor reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213360 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/debug.adb
gcc/ada/gnat_ugn.texi
gcc/ada/s-fileio.adb
gcc/ada/s-unstyp.ads
gcc/ada/sem_aggr.adb

index 0eed4a4..f2a97c0 100644 (file)
@@ -1,3 +1,25 @@
+2014-07-31  Javier Miranda  <miranda@adacore.com>
+
+       * debug.adb: Complete documentation of -gnatd.z.
+
+2014-07-31  Bob Duff  <duff@adacore.com>
+
+       * gnat_ugn.texi: Minor doc fixes.
+
+2014-07-31  Robert Dewar  <dewar@adacore.com>
+
+       * sem_aggr.adb (Resolve_Array_Aggregate): Fix posting of missing
+       index value.
+
+2014-07-31  Tristan Gingold  <gingold@adacore.com>
+
+       * s-unstyp.ads (Packed_Byte): Make this type universal aliasing.
+       (Packed_Bytes1): Make component aliased.
+
+2014-07-31  Robert Dewar  <dewar@adacore.com>
+
+       * s-unstyp.ads, s-fileio.adb: Minor reformatting.
+
 2014-07-31  Robert Dewar  <dewar@adacore.com>
 
        * inline.adb, gnat1drv.adb, exp_ch6.adb, s-fileio.adb: Minor
index be1eff3..562a49c 100644 (file)
@@ -594,7 +594,12 @@ package body Debug is
    --       fully compiled and analyzed, they just get eliminated from the
    --       code generation step.
 
-   --  d.z  Need documentation of this flag ???
+   --  d.z  Enable back end inlining on targets that have the GCC backend (ie.
+   --       all targets except AAMP, .NET and JVM). This switch has no effect
+   --       under GNATprove to avoid confusing the formal verification output,
+   --       and it has no effect if the sources are compiled with frontend
+   --       inlining (ie. -gnatN). This switch is currently used to evaluate
+   --       the impact of back end inlining.
 
    --  d.A  There seems to be a problem with ASIS if we activate the circuit
    --       for reading and writing the aspect specification hash table, so
index bbbe553..8e7b4fb 100644 (file)
@@ -14869,7 +14869,10 @@ tool argument.
 Incremental processing on a per-file basis. Source files are only
 processed if they have been modified, or if files they depend on have
 been modified. This is similar to the way gnatmake/gprbuild only
-compiles files that need to be recompiled.
+compiles files that need to be recompiled. Note that in this mode
+@command{gnatpp} is acting in place of the compiler, so if a project
+file is used, the switches set for the compiler should not be set
+to switches recognized by @command{gcc}.
 
 @item --pp-off=@var{xxx}
 @cindex @option{--pp-off} @command{gnatpp}
@@ -15319,7 +15322,10 @@ options:
 --incremental -- incremental processing on a per-file basis. Source files are
       only processed if they have been modified, or if files they depend
       on have been modified. This is similar to the way gnatmake/gprbuild
-      only compiles files that need to be recompiled.
+      only compiles files that need to be recompiled. Note that in this mode
+      @command{gnat2xml} is acting in place of the compiler, so if a project
+      file is used, the switches set for the compiler should not be set
+      to switches recognized by @command{gcc}.
 
 -j@var{n} -- In @option{--incremental} mode, use @var{n} @command{gnat2xml}
       processes to perform XML generation in parallel. If @var{n} is 0, then
index 3208d23..4c21b85 100644 (file)
@@ -991,17 +991,15 @@ package body System.File_IO is
          --  Note that we cannot use an aggregate here as File_Ptr is a
          --  class-wide access to a limited type (Root_Stream_Type).
 
-         File_Ptr.Is_Regular_File   :=
-           (is_regular_file (fileno (Stream)) /= 0);
+         File_Ptr.Is_Regular_File   := is_regular_file (fileno (Stream)) /= 0;
          File_Ptr.Is_System_File    := False;
          File_Ptr.Text_Encoding     := Text_Encoding;
          File_Ptr.Shared_Status     := Shared;
          File_Ptr.Access_Method     := Amethod;
          File_Ptr.Stream            := Stream;
-         File_Ptr.Form              :=
-           new String'(Formstr);
-         File_Ptr.Name              :=
-           new String'(Fullname (1 .. Full_Name_Len));
+         File_Ptr.Form              := new String'(Formstr);
+         File_Ptr.Name              := new String'(Fullname
+                                                     (1 .. Full_Name_Len));
          File_Ptr.Mode              := Mode;
          File_Ptr.Is_Temporary_File := Tempfile;
          File_Ptr.Encoding          := Encoding;
index 3b97599..9eefc15 100644 (file)
@@ -50,10 +50,13 @@ package System.Unsigned_Types is
    --  Used in the implementation of Is_Negative intrinsic (see Exp_Intr)
 
    type Packed_Byte is mod 2 ** 8;
+   pragma Universal_Aliasing (Packed_Byte);
    for Packed_Byte'Size use 8;
-   --  Component type for Packed_Bytes array
+   --  Component type for Packed_Bytes1, Packed_Bytes2 and Packed_Byte4 arrays.
+   --  As this type is used by the compiler to implement operations on user
+   --  packed array, it needs to be able to alias any type.
 
-   type Packed_Bytes1 is array (Natural range <>) of Packed_Byte;
+   type Packed_Bytes1 is array (Natural range <>) of aliased Packed_Byte;
    for Packed_Bytes1'Alignment use 1;
    for Packed_Bytes1'Component_Size use Packed_Byte'Size;
    --  This is the type used to implement packed arrays where no alignment
index a597f73..bf9b24f 100644 (file)
@@ -2229,7 +2229,18 @@ package body Sem_Aggr is
                            Hi_Val := Table (J - 1).Highest;
 
                            if Lo_Val > Hi_Val + 1 then
-                              Choice := Table (J).Lo;
+
+                              --  Set location for flag, if the choice is an
+                              --  explicit Range, then point to the low bound,
+                              --  otherwise just point to  the choice.
+
+                              Choice := Table (J).Choice;
+
+                              if Nkind (Choice) = N_Range then
+                                 Choice := Low_Bound (Choice);
+                              end if;
+
+                              --  Now post appropriate message
 
                               if Hi_Val + 1 = Lo_Val - 1 then
                                  Error_Msg_N