3.2. Section 2: Lexical Elements

Q: 2.8(16): Pragmas
Q: 2.8(17-19): Pragmas

Q: 2.8(16): Pragmas

Normally, implementation-defined pragmas should have no semantic effect for error-free programs; that is, if the implementation-defined pragmas are removed from a working program, the program should still be legal, and should still have the same semantics.

A: The following implementation defined pragmas are exceptions to this rule:

Ada_83

Affects legality

Assert

Affects semantics

Debug

Affects semantics

Interface_Name

Affects semantics

Machine_Attribute

Affects semantics

Unimplemented_Unit

Affects legality

Unchecked_Union

Affects semantics

Not followed. In each of the above cases, it is essential to the purpose of the pragma that this advice not be followed. For details see Chapter 1.

Q: 2.8(17-19): Pragmas

Normally, an implementation should not define pragmas that can make an illegal program legal, except as follows:

  • A pragma used to complete a declaration, such as a pragma Import;

  • A pragma used to configure the environment by adding, removing, or replacing library_items.

A: See response to paragraph 16 of this same section.