RM 2 8 16 Pragmas (GNAT Reference Manual) (original) (raw)


6.4 RM 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.”

The following implementation defined pragmas are exceptions to this rule:

Pragma Explanation
‘Abort_Defer’ Affects semantics
‘Ada_83’ Affects legality
‘Assert’ Affects semantics
‘CPP_Class’ Affects semantics
‘CPP_Constructor’ Affects semantics
‘Debug’ Affects semantics
‘Interface_Name’ Affects semantics
‘Machine_Attribute’ Affects semantics
‘Unimplemented_Unit’ Affects legality
‘Unchecked_Union’ Affects semantics

In each of the above cases, it is essential to the purpose of the pragma that this advice not be followed. For details seeImplementation Defined Pragmas.