diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-04-19 13:30:03 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-04-19 13:30:03 +0000 |
commit | 544c4d8e35d593899f9121206b941c53ffcfe088 (patch) | |
tree | a67dd1df13b84d7cade36625b75c8c3a9631f011 | |
parent | cc28d5c8cbea818abd49af5c29af9e24579ad1c9 (diff) | |
download | gcc-544c4d8e35d593899f9121206b941c53ffcfe088.tar.gz |
* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
gnat_rm.texi: Update documentation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235205 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst | 28 | ||||
-rw-r--r-- | gcc/ada/gnat_rm.texi | 30 |
3 files changed, 36 insertions, 27 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 5fcbdc62d13..20f7ed2a33f 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2016-04-19 Arnaud Charlet <charlet@adacore.com> + + * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, + gnat_rm.texi: Update documentation. + 2016-04-19 Olivier Hainque <hainque@adacore.com> * par_sco.adb (Traverse_One, case N_Case_Statement): diff --git a/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst b/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst index f338f0f2f4d..82a7544a896 100644 --- a/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst +++ b/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst @@ -524,19 +524,15 @@ No_Multiple_Elaboration ----------------------- .. index:: No_Multiple_Elaboration -[GNAT] Normally each package contains a 16-bit counter used to check for access -before elaboration, and to control multiple elaboration attempts. -This counter is eliminated for units compiled with the static model -of elaboration if restriction `No_Elaboration_Code` -is active but because of -the need to check for multiple elaboration in the general case, these -counters cannot be eliminated if elaboration code may be present. The -restriction `No_Multiple_Elaboration` -allows suppression of these counters -in static elaboration units even if they do have elaboration code. If this -restriction is used, then the situations in which multiple elaboration is -possible, including non-Ada main programs, and Stand Alone libraries, are not -permitted, and will be diagnosed by the binder. +[GNAT] When this restriction is active, we are not requesting control-flow +preservation with -fpreserve-control-flow and the static elaboration model is +used, the compiler is allowed to suppress the elaboration counter normally +associated with the unit, even if the unit has elaboration code. This counter +is typically used to check for access before elaboration and to control +multiple elaboration attempts. If the restriction is used, then the +situations in which multiple elaboration is possible, including non-Ada main +programs and Stand Alone libraries, are not permitted and will be diagnosed +by the binder. No_Nested_Finalization ---------------------- @@ -880,6 +876,12 @@ Note that this the implementation of this restriction requires full code generation. If it is used in conjunction with "semantics only" checking, then some cases of violations may be missed. +When this restriction is active, we are not requesting control-flow +preservation with -fpreserve-control-flow and the static elaboration model is +used, the compiler is allowed to suppress the elaboration counter normally +associated with the unit, used to check for access before elaboration and to +control. + No_Dynamic_Sized_Objects ------------------------ .. index:: No_Dynamic_Sized_Objects diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index 405aa5a26f2..4201a56bd80 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -21,7 +21,7 @@ @copying @quotation -GNAT Reference Manual , November 18, 2015 +GNAT Reference Manual , April 19, 2016 AdaCore @@ -12112,19 +12112,15 @@ Long_Integer'Size. @geindex No_Multiple_Elaboration -[GNAT] Normally each package contains a 16-bit counter used to check for access -before elaboration, and to control multiple elaboration attempts. -This counter is eliminated for units compiled with the static model -of elaboration if restriction @cite{No_Elaboration_Code} -is active but because of -the need to check for multiple elaboration in the general case, these -counters cannot be eliminated if elaboration code may be present. The -restriction @cite{No_Multiple_Elaboration} -allows suppression of these counters -in static elaboration units even if they do have elaboration code. If this -restriction is used, then the situations in which multiple elaboration is -possible, including non-Ada main programs, and Stand Alone libraries, are not -permitted, and will be diagnosed by the binder. +[GNAT] When this restriction is active, we are not requesting control-flow +preservation with -fpreserve-control-flow and the static elaboration model is +used, the compiler is allowed to suppress the elaboration counter normally +associated with the unit, even if the unit has elaboration code. This counter +is typically used to check for access before elaboration and to control +multiple elaboration attempts. If the restriction is used, then the +situations in which multiple elaboration is possible, including non-Ada main +programs and Stand Alone libraries, are not permitted and will be diagnosed +by the binder. @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{19e} @@ -12602,6 +12598,12 @@ Note that this the implementation of this restriction requires full code generation. If it is used in conjunction with "semantics only" checking, then some cases of violations may be missed. +When this restriction is active, we are not requesting control-flow +preservation with -fpreserve-control-flow and the static elaboration model is +used, the compiler is allowed to suppress the elaboration counter normally +associated with the unit, used to check for access before elaboration and to +control. + @node No_Dynamic_Sized_Objects,No_Entry_Queue,No_Elaboration_Code,Program Unit Level Restrictions @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{1bf} @subsection No_Dynamic_Sized_Objects |