Commit a0176903 by Arnaud Charlet Committed by Arnaud Charlet

standard_and_implementation_defined_restrictions.rst, [...]: Update documentation.

        * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
        gnat_rm.texi: Update documentation.

From-SVN: r235205
parent 009c0268
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> 2016-04-19 Olivier Hainque <hainque@adacore.com>
* par_sco.adb (Traverse_One, case N_Case_Statement): * par_sco.adb (Traverse_One, case N_Case_Statement):
......
...@@ -524,19 +524,15 @@ No_Multiple_Elaboration ...@@ -524,19 +524,15 @@ No_Multiple_Elaboration
----------------------- -----------------------
.. index:: No_Multiple_Elaboration .. index:: No_Multiple_Elaboration
[GNAT] Normally each package contains a 16-bit counter used to check for access [GNAT] When this restriction is active, we are not requesting control-flow
before elaboration, and to control multiple elaboration attempts. preservation with -fpreserve-control-flow and the static elaboration model is
This counter is eliminated for units compiled with the static model used, the compiler is allowed to suppress the elaboration counter normally
of elaboration if restriction `No_Elaboration_Code` associated with the unit, even if the unit has elaboration code. This counter
is active but because of is typically used to check for access before elaboration and to control
the need to check for multiple elaboration in the general case, these multiple elaboration attempts. If the restriction is used, then the
counters cannot be eliminated if elaboration code may be present. The situations in which multiple elaboration is possible, including non-Ada main
restriction `No_Multiple_Elaboration` programs and Stand Alone libraries, are not permitted and will be diagnosed
allows suppression of these counters by the binder.
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.
No_Nested_Finalization No_Nested_Finalization
---------------------- ----------------------
...@@ -880,6 +876,12 @@ Note that this the implementation of this restriction requires full ...@@ -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" code generation. If it is used in conjunction with "semantics only"
checking, then some cases of violations may be missed. 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 No_Dynamic_Sized_Objects
------------------------ ------------------------
.. index:: No_Dynamic_Sized_Objects .. index:: No_Dynamic_Sized_Objects
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@copying @copying
@quotation @quotation
GNAT Reference Manual , November 18, 2015 GNAT Reference Manual , April 19, 2016
AdaCore AdaCore
...@@ -12112,19 +12112,15 @@ Long_Integer'Size. ...@@ -12112,19 +12112,15 @@ Long_Integer'Size.
@geindex No_Multiple_Elaboration @geindex No_Multiple_Elaboration
[GNAT] Normally each package contains a 16-bit counter used to check for access [GNAT] When this restriction is active, we are not requesting control-flow
before elaboration, and to control multiple elaboration attempts. preservation with -fpreserve-control-flow and the static elaboration model is
This counter is eliminated for units compiled with the static model used, the compiler is allowed to suppress the elaboration counter normally
of elaboration if restriction @cite{No_Elaboration_Code} associated with the unit, even if the unit has elaboration code. This counter
is active but because of is typically used to check for access before elaboration and to control
the need to check for multiple elaboration in the general case, these multiple elaboration attempts. If the restriction is used, then the
counters cannot be eliminated if elaboration code may be present. The situations in which multiple elaboration is possible, including non-Ada main
restriction @cite{No_Multiple_Elaboration} programs and Stand Alone libraries, are not permitted and will be diagnosed
allows suppression of these counters by the binder.
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.
@node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions @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} @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 ...@@ -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" code generation. If it is used in conjunction with "semantics only"
checking, then some cases of violations may be missed. 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 @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} @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{1bf}
@subsection No_Dynamic_Sized_Objects @subsection No_Dynamic_Sized_Objects
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment