pragma Normalize_Scalars

Name

Normalize_Scalars -- 

Synopsis

pragma Normalize_Scalars;

Description

This is a language defined pragma which is fully implemented in XGC Ada. The effect is to cause all scalar objects that are not otherwise initialized to be initialized. The initial values are implementation dependent and are as follows:

Standard.Character

Objects whose root type is Standard.Character are initialized to Character'Last. This will be out of range of the subtype only if the subtype range excludes this value.

Standard.Wide_Character

Objects whose root type is Standard.Wide_Character are initialized to Wide_Character'Last. This will be out of range of the subtype only if the subtype range excludes this value.

Integer types

Objects of an integer type are initialized to base_type'First, where base_type is the base type of the object type. This will be out of range of the subtype only if the subtype range excludes this value. For example, if you declare the subtype:

subtype Ityp is integer range 1 .. 10;

then objects of type x will be initialized to Integer'First, a negative number that is certainly outside the range of subtype Ityp.

Real types

Objects of all real types (fixed and floating) are initialized to base_type'First, where base_type is the base type of the object type. This will be out of range of the subtype only if the subtype range excludes this value.

Modular types

Objects of a modular type are initialized to type'Last. This will be out of range of the subtype only if the subtype excludes this value.

Enumeration types

Objects of an enumeration type are initialized to all one-bits, that is to the value 2 ** typ'Size - 1. This will be out of range of the enumeration subtype in all cases except where the subtype contains exactly 2**8, 2**16, or 2**32.