aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-06-13 12:06:13 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2014-06-13 12:06:13 +0200
commit17a3564142202cb76c9fede9cd489d9769f5560b (patch)
treed7edba94051e2f05d3b33ffe825fe4650e50e863 /gcc
parent19634e40b7f905c8bb5ff7f1095829b91b718532 (diff)
downloadgcc-17a3564142202cb76c9fede9cd489d9769f5560b.zip
gcc-17a3564142202cb76c9fede9cd489d9769f5560b.tar.gz
gcc-17a3564142202cb76c9fede9cd489d9769f5560b.tar.bz2
[multiple changes]
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog13
-rw-r--r--gcc/ada/debug.adb8
-rw-r--r--gcc/ada/gnat_rm.texi6
-rw-r--r--gcc/ada/gnat_ugn.texi2
-rw-r--r--gcc/ada/layout.adb16
-rw-r--r--gcc/ada/sem_ch3.adb22
6 files changed, 27 insertions, 40 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 2065ccc..6f4785f 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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.
diff --git a/gcc/ada/debug.adb b/gcc/ada/debug.adb
index 4e62365c..eaab4ff 100644
--- a/gcc/ada/debug.adb
+++ b/gcc/ada/debug.adb
@@ -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 --
------------------------------------------
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index 0ae2e21..e94dd9d 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -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
diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi
index d9c960c..dde83b4 100644
--- a/gcc/ada/gnat_ugn.texi
+++ b/gcc/ada/gnat_ugn.texi
@@ -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
diff --git a/gcc/ada/layout.adb b/gcc/ada/layout.adb
index 7b0cdc5..52c981e 100644
--- a/gcc/ada/layout.adb
+++ b/gcc/ada/layout.adb
@@ -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);
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 03e9154..f9ccf5b 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -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);