Communicator e3000 MPE/iX Release 7.0 Express 1 (Software Release C.70.01) (30216-90328)

120 Chapter5
Technical Articles
Pascal/iX has $VOLATILE_WITH Option Enhancement
With these changes, the WITH temp is not reloaded on each reference, but all loads and
stores into the record are present in the generated code since the pointed-to record is
volatile.
Another alternative is to remove the suspicious WITH expression from the WITH
statement and expand all references in the WITH body. Depending on the complexity of
the expression and what parts are volatile, the efficiency of the generated code might be
the same as using a WITH.
NOTE
An error will be generated when the compiler detects a volatile WITH
situation. This approach is taken in order to raise its visibility. The user can
simply add $VOLATILE_WITH 2$ to the global compiler options if the
utmost code efficiency is not a concern.
NOTE
The $VOLATILE_WITH option takes effect on a statement basis, so it will
affect the entire list of WITH expressions for a WITH statement. If you have
multiple expressions that require different $VOLATILE_WITH levels, you
will have to break the WITH statement into multiple statements.