"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 see Implementation Defined Pragmas.