User`s guide

Recommended and Required Source Changes
3.5 Overwriting Static Data
The new data must be completely within the bounds of the previous .ASCII
string. The following is illegal:
DATA: .ascii /abcdefg/
.=data+4
.ascii /lmnop/ ; exceeds end of previous .ASCII
Partial overwriting with other directive types (.LONG, and so forth) is not
allowed.
3.6 Static Initialization Using External Symbols
Some forms of static initialization using external symbols are not allowed.
Recommended Change
Where possible, change your code to one of the forms that is allowed. This
can often be done by defining additional symbols using $xxxDEF macros. On
OpenVMS Alpha and OpenVMS I64 systems, the compiler supports expressions
of the form:
<symbol1 +/- offset1> OPR <symbol2 +/- offset2>
where OPR can be:
+ Add
- Subtract
* Multiply
/ Divide
@ Arithmetic shift
& Logical inclusive AND
! Logical inclusive OR
\ Logical exclusive OR
Symbol1 and symbol2 (both optional) are external values or labels in another
psect, and offset1 and offset2 can be expressions but must resolve to compile-
time constants.
On OpenVMS I64 systems, due to the design of the ELF object file format, the
linker will only allow subtraction when symbol1 or symbol2 resolves to the
address of a routine.
The compiler does not support expressions of the form:
<symbol1> OPR <symbol2>
If a static initialization expression cannot be reduced to this form, the compiler
will report an illegal static initialization. Use brackets to ensure correct operator
precedence.
3.7 Transfer Vectors
The compiler flags any occurrence of the .TRANSFER directive in VAX MACRO
code as an error unless you have specified /noflag=directives. In that case, no
message is reported, but the .TRANSFER directive is ignored.
On OpenVMS VAX systems, you can establish universal entry points for
relocatable code in shareable images by explicitly defining transfer vectors in
VAX MACRO source code. On OpenVMS Alpha and OpenVMS I64 systems,
you establish them by declaring the symbol values of universal entry points
in a linker options file. The linker constructs a symbol vector table within
3–16 Recommended and Required Source Changes