]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 13 Jun 2014 10:06:13 +0000 (12:06 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 13 Jun 2014 10:06:13 +0000 (12:06 +0200)
2014-06-13  Ben Brosgol  <brosgol@adacore.com>

* gnat_rm.texi: Minor fixes.
* gnat_ugn.texi: Added a missing "@itemize".

2014-06-13  Robert Dewar  <dewar@adacore.com>

* debug.adb: Remove -gnatd.1 flag documentation.
* layout.adb (Layout_Type): Remove special handling of size
for anonymous access type.
* sem_ch3.adb (Replace_Type): Remove special handling of size
for anonymous access type.

From-SVN: r211620

gcc/ada/ChangeLog
gcc/ada/debug.adb
gcc/ada/gnat_rm.texi
gcc/ada/gnat_ugn.texi
gcc/ada/layout.adb
gcc/ada/sem_ch3.adb

index 2065ccce8a24b624c496bd2dccdbe0a67c15ef46..6f4785f59624b5ec651b55b94ecda2c29e88212b 100644 (file)
@@ -1,3 +1,16 @@
+2014-06-13  Ben Brosgol  <brosgol@adacore.com>
+
+       * gnat_rm.texi: Minor fixes.
+       * gnat_ugn.texi: Added a missing "@itemize".
+
+2014-06-13  Robert Dewar  <dewar@adacore.com>
+
+       * debug.adb: Remove -gnatd.1 flag documentation.
+       * layout.adb (Layout_Type): Remove special handling of size
+       for anonymous access type.
+       * sem_ch3.adb (Replace_Type): Remove special handling of size
+       for anonymous access type.
+
 2014-06-13  Robert Dewar  <dewar@adacore.com>
 
        * debug.adb: Document debug flag -gnatd.1.
index 4e62365c591c7542fc8e7698b194c1569cf7b0de..eaab4ffbebebd4eb05b8de213493739393d1dc4e 100644 (file)
@@ -155,7 +155,7 @@ package body Debug is
    --  d8   Force opposite endianness in packed stuff
    --  d9   Allow lock free implementation
 
-   --  d.1  Disable fix to make anonymous access types thin
+   --  d.1
    --  d.2
    --  d.3
    --  d.4
@@ -733,12 +733,6 @@ package body Debug is
    --  d9   This allows lock free implementation for protected objects
    --       (see Exp_Ch9).
 
-   --  d.1  There is a problem with making anonymous access types which refer
-   --       to an unconstrained array thick. And we have a fix, which is to
-   --       make them thin always. Search for Debug_Flag_Dot_1 in layout.adb
-   --       and sem_ch3.adb to see the explanation for why we don't enable this
-   --       fix for now unless this debug flag is set.
-
    ------------------------------------------
    -- Documentation for Binder Debug Flags --
    ------------------------------------------
index 0ae2e21d48fda3896a1ae5e1da7f836a70808341..e94dd9dd724d072f88e3a548f22d062a1770189f 100644 (file)
@@ -251,7 +251,6 @@ Implementation Defined Pragmas
 * Pragma Suppress_Debug_Info::
 * Pragma Suppress_Exception_Locations::
 * Pragma Suppress_Initialization::
-* Pragma Task_Info::
 * Pragma Task_Name::
 * Pragma Task_Storage::
 * Pragma Test_Case::
@@ -10527,6 +10526,8 @@ restriction is in force:
 @item Ancestor part cannot be a type mark
 @item Attributes 'Image, 'Width and 'Value not allowed
 @item Functions may not update globals
+@item Subprograms may not contain direct calls to themselves (prevents recursion within unit)
+@item Call to subprogram not allowed in same unit before body has been seen (prevents recursion within unit)
 @end itemize
 
 The following restrictions are enforced, but note that they are actually more
@@ -10564,6 +10565,7 @@ currently checked by the SPARK_05 restriction:
 @item After renaming, cannot use the original name
 @item Subprograms can only be renamed to remove package prefix
 @item Pragma import must be immediately after entity it names
+@item No mutual recursion between multiple units (this can be checked with gnatcheck)
 @end itemize
 
 Note that if a unit is compiled in Ada 95 mode with the SPARK restriction,
@@ -22454,7 +22456,7 @@ for the version of GNAT that you are using, see the documentation
 in the spec of package System.Task_Info in the runtime
 library.
 
-@node package System.Task_Info (s-tasinf.ads)
+@node System.Task_Info (s-tasinf.ads)
 @section package System.Task_Info (@file{s-tasinf.ads})
 
 @noindent
index d9c960c88ecdf68136d68e28ce5250b883c9ed85..dde83b45c17906b33a4c912aae8cc921e621dd66 100644 (file)
@@ -22875,12 +22875,14 @@ a default guard area is created.
 
 GNAT supplies the following task-related pragma:
 
+@itemize
 @item  @code{TASK_STORAGE}
 
 GNAT implements pragma @code{TASK_STORAGE} in the same way as HP Ada.
 Both HP Ada and GNAT supply the pragmas @code{PASSIVE},
 @code{SUPPRESS}, and @code{VOLATILE}.
 @end itemize
+
 @node Scheduling and Task Priority
 @subsection Scheduling and Task Priority
 
index 7b0cdc5383ee7df4652c325d23af24d96ffd0775..52c981e36c883d3dfaf4a7203423a493f1912452 100644 (file)
@@ -2462,19 +2462,6 @@ package body Layout is
             Set_Size_Info (E, Base_Type (E));
             Set_RM_Size   (E, RM_Size (Base_Type (E)));
 
-         --  Anonymous access types are always thin, because otherwise we get
-         --  into strange conformance problems between two types, one of which
-         --  can see that something is unconstrained and one of which cannot.
-
-         elsif Ekind (E) = E_Anonymous_Access_Type
-
-           --  For now eneable this only if debug flag -gnatd.1 is set, since
-           --  we have some regressions in gnatcoll that need sorting out???
-
-           and then Debug_Flag_Dot_1
-         then
-            Init_Size (E, System_Address_Size);
-
          --  For other access types, we use either address size, or, if a fat
          --  pointer is used (pointer-to-unconstrained array case), twice the
          --  address size to accommodate a fat pointer.
@@ -2483,6 +2470,9 @@ package body Layout is
            and then Is_Array_Type (Desig_Type)
            and then not Is_Constrained (Desig_Type)
            and then not Has_Completion_In_Body (Desig_Type)
+
+           --  Debug Flag -gnatd6 says make all pointers to unconstrained thin
+
            and then not Debug_Flag_6
          then
             Init_Size (E, 2 * System_Address_Size);
index 03e91543c281b4a2249206bedb64b0f6b0a1d9ac..f9ccf5b5a6880fe6369c699800dbe14a232cccb3 100644 (file)
@@ -13568,30 +13568,16 @@ package body Sem_Ch3 is
                   Set_Etype (Acc_Type, Acc_Type);
                   Set_Scope (Acc_Type, New_Subp);
 
-                  --  Set size of anonymous access type. Note that anonymous
-                  --  access to Unconstrained always uses thin pointers. This
-                  --  avoids confusion for the case where two types that should
-                  --  conform but end up differning, because in one case we can
-                  --  see the unconstrained designated type, and in the other
-                  --  case we can't see it yet (full type declaration not seen
-                  --  yet), so we default to thin in that case anyway.
-
-                  --  For now, for the access to unconstrained array scase, we
-                  --  are making the above change only if debug flag -gnatd.1
-                  --  is set. That's because the change, though almost
-                  --  certainly correct, is causing gnatcoll regressions
-                  --  which we have to sort out ???
+                  --  Set size of anonymous access type. If we have an access
+                  --  to an unconstrained array, this is a fat pointer, so it
+                  --  is sizes at twice addtress size.
 
                   if Is_Array_Type (Desig_Typ)
                     and then not Is_Constrained (Desig_Typ)
-                    and then not Debug_Flag_Dot_1
                   then
                      Init_Size (Acc_Type, 2 * System_Address_Size);
 
-                  --  Normal case. This is what we intend to do always when we
-                  --  finally install the change discussed above. In the case
-                  --  of access to unconstrained array, then we take this path
-                  --  for now only if -gnatd.1 debug flag is set.
+                  --  Other cases use a thin pointer
 
                   else
                      Init_Size (Acc_Type, System_Address_Size);