Next: , Previous: No_Long_Long_Integers, Up: Partition-Wide Restrictions


5.1.46 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.