PowerAda Freezing Rules

From OC Systems Wiki!
< PowerAda:Implementation Details
Revision as of 02:39, 24 April 2019 by imported>WikiVisor
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


The compiler checks the freezing rules (described in RM95 section 13.14). The compiler detects the following as a semantic error:

type T is (A, B, C);
OBJ : T;
for T use (A => 0, B => 3, C => 5);

The error in this code occurs when an object, OBJ, is declared to be of type T before the representation of type T is determined. To correct this code, move the declaration of the object to follow the representation clause for type T, as shown below:

type T is (A, B, C);
for T use (A => 0, B => 3, C => 5);
OBJ : T;