[multiple changes]
authorPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Fri, 29 Sep 2017 12:53:24 +0000 (12:53 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Fri, 29 Sep 2017 12:53:24 +0000 (12:53 +0000)
2017-09-29  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false
redundant warnings.

2017-09-29  Yannick Moy  <moy@adacore.com>

* sinput-c.adb: Remove unused with-clause on Ada.Unchecked_Conversion.

2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>

* doc/gnat_rm/representation_clauses_and_pragmas.rst: Minor rewording.
* doc/gnat_rm/implementation_defined_pragmas.rst (Optimize_Alignment):
Document the effect of pragma Optimize_Alignment (Space) on non-packed
record types.
* gnat_rm.texi: Regenerate.

From-SVN: r253284

gcc/ada/ChangeLog
gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
gcc/ada/gnat_rm.texi
gcc/ada/sem_ch8.adb
gcc/ada/sinput-c.adb

index 2657531cf36630c6d8f1590426db9c82671519a1..582dcbbc845865c2f2ab22a634ec0e4448125383 100644 (file)
@@ -1,3 +1,20 @@
+2017-09-29  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false
+       redundant warnings.
+
+2017-09-29  Yannick Moy  <moy@adacore.com>
+
+       * sinput-c.adb: Remove unused with-clause on Ada.Unchecked_Conversion.
+
+2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/representation_clauses_and_pragmas.rst: Minor rewording.
+       * doc/gnat_rm/implementation_defined_pragmas.rst (Optimize_Alignment):
+       Document the effect of pragma Optimize_Alignment (Space) on non-packed
+       record types.
+       * gnat_rm.texi: Regenerate.
+
 2017-09-25  Justin Squirek  <squirek@adacore.com>
 
        * aspects.adb, bindgen.adb, clean.adb, erroutc.adb, exp_ch13.adb,
index 305301338cfaeebf3f0c67ee3aee07a5e30f1e79..1281758ac16b044b1d45061384bb2a3e0484566b 100644 (file)
@@ -4120,6 +4120,9 @@ Specifying SPACE also disables alignment promotions for standalone objects,
 which occur when the compiler increases the alignment of a specific object
 without changing the alignment of its type.
 
+Specifying SPACE also disables component reordering in unpacked record types,
+which can result in larger sizes in order to meet alignment requirements.
+
 Specifying TIME causes larger default alignments to be chosen in the case of
 small types with sizes that are not a power of 2. For example, consider:
 
index 8ff5224020678759c982fe1c1cca64c8737ce62f..5ad8e03748460cd0690027605aaaf3ea5c5d37a6 100644 (file)
@@ -64,7 +64,7 @@ values are as follows:
 
 * *Records*.
 
-  For the normal non-packed case, the alignment of a record is equal to
+  For the normal unpacked case, the alignment of a record is equal to
   the maximum alignment of any of its components.  For tagged records, this
   includes the implicit access type used for the tag.  If a pragma ``Pack``
   is used and all components are packable (see separate section on pragma
index 21b5c7149d4e1afb64e38911a2987683faba4f61..8ed58c4fc7fa8016d4c76607fa805cc65fddc1e1 100644 (file)
@@ -21,7 +21,7 @@
 
 @copying
 @quotation
-GNAT Reference Manual , Sep 13, 2017
+GNAT Reference Manual , Sep 29, 2017
 
 AdaCore
 
@@ -5547,6 +5547,9 @@ Specifying SPACE also disables alignment promotions for standalone objects,
 which occur when the compiler increases the alignment of a specific object
 without changing the alignment of its type.
 
+Specifying SPACE also disables component reordering in unpacked record types,
+which can result in larger sizes in order to meet alignment requirements.
+
 Specifying TIME causes larger default alignments to be chosen in the case of
 small types with sizes that are not a power of 2. For example, consider:
 
@@ -18099,7 +18102,7 @@ will be as described for elementary types, e.g. a packed array of length
 @item 
 @emph{Records}.
 
-For the normal non-packed case, the alignment of a record is equal to
+For the normal unpacked case, the alignment of a record is equal to
 the maximum alignment of any of its components.  For tagged records, this
 includes the implicit access type used for the tag.  If a pragma @code{Pack}
 is used and all components are packable (see separate section on pragma
index d86818abd490c0adebc794ded8291328a93a2eee..3eec5717f680c004312f834286a66160d87f6911 100644 (file)
@@ -9322,7 +9322,7 @@ package body Sem_Ch8 is
 
          end if;
 
-         if Present (Redundant) then
+         if Present (Redundant) and then Parent (Redundant) /= Prev_Use then
             --  Make sure we are looking at most-descendant use_package_clause
             --  by traversing the chain with Find_Most_Prev and then verifying
             --  there is no scope manipulation via Most_Descendant_Use_Clause.
index fe9285c873e265722005425f310d32ceff9f739a..645f0da647ba911a973b3b12c8c39975a3510671 100644 (file)
@@ -28,8 +28,6 @@ with Opt;    use Opt;
 with Output; use Output;
 with System; use System;
 
-with Ada.Unchecked_Conversion;
-
 pragma Warnings (Off);
 --  This package is used also by gnatcoll
 with System.OS_Lib; use System.OS_Lib;