MACRO
MACRO is a DCL command that invokes the MACRO compiler.
You have two major syntax options, MACRO/MIGRATION and MACRO/ALPHA. MACRO/MIGRATION invokes the MACRO-32 compiler, MACRO/ALPHA invokes the MACRO-64 compiler.
Qualifiers
- /DEBUG=option includes or excludes local symbols in the symbol table or traceback information in the object module. Options include:
- ALL: makes local symbols and traceback information in the object module available to the debugger (equivalent to /ENABLE=(DEBUG,TRACEBACK))
- NONE: Makes local symbols and traceback information in the object module unavailable to the debugger (equivalent to /DISABLE=(DEBUG,TRACEBACK))
- SYMBOLS: makes all local symbols in the object module available and all traceback information unavailable to the debugger. This qualifier is equivalent to /ENABLE=SYMBOLS.
- TRACEBACK: makes traceback information in the object module available and local symbols unavailable to the debugger. This qualifier is equivalent to /ENABLE=TRACEBACK.
- /FLAG=option specifies which classes of informational messages the compiler reports. The options include:
- ALIGNMENT reports unaligned stack and memory references.
- ALL enables all options.
- ARGLIST reports that the argument list has been homed. (See Section 2.4.1.)
- BAD_FIELD_USAGE reports BBC/BBS instructions that attempt to use bits beyond 31.
- CODEGEN reports run-time code generation, such as self-modifying code. (See Section 3.2.2.)
- COMPILER_VERSION (OpenVMS I64 only) prints compiler version to SYS$ERROR.
- DIRECTIVES reports unsupported directives.
- HINTS reports input/output/auto-preserved register hints.
- INDIRECT_CALLS reports CALLS/CALLG instructions that have an indirect target and are not preceded by a .USE_LINKAGE directive.
- INDIRECT_JSB reports JSB instructions that have an indirect target and are not preceded by a .USE_LINKAGE directive.
- INSTRUCTIONS reports instructions that use absolute addresses that might compile correctly, but should be examined anyway, because the desired absolute address might be different on the system.
- JUMPS reports branches between routines.
- LINKAGE reports linkage information provided to the OpenVMS linker.
- NONE disables all options.
- STACK reports all messages caused by user stack manipulation.
- /DIAGNOSTICS=filespec creates a file containing assembler messages and diagnostic information.
- /MACHINE
- /ENABLE= option and /DISABLE=option provide initial settings for the compiler functions that can be controlled by the .DISABLE and .ENABLE macro directives. The options include:
- DEBUG excludes local symbol table information in the object file for use with the debugger. If the /DEBUG qualifier is also specified, it overrides /DISABLE=(DEBUG,TRACEBACK) or /ENABLE=(DEBUG,TRACEBACK), regardless of their order on the command line.
- FLAGGING deactivates compiler flagging.
- GLOBAL disables the assumption that undefined symbols are external symbols.
- OVERFLOW deactivates production of overflow trap code for the following opcodes: ADDx, ADWC, INCx, ADAWI, SUBx, SBWC, DECx, MNEGx, MULx, CVTxy,(where x is greater than y, for example CVTLB), AOBxx, ACBL, and SOBxx.
- QUADWORD disables support for quadword literal and address expressions.
- SUPPRESSION prevents the listing of unreferenced symbols in the symbol table.
- TRACEBACK disables the provision of traceback information to the debugger. If the /DEBUG qualifier is also specified, it overrides /DISABLE=(DEBUG,TRACEBACK) or /ENABLE=(DEBUG,TRACEBACK), regardless of their order on the command line.
By default, at compiler activation, FLAGGING, GLOBAL, TRACEBACK, and SUPPRESSION are enabled, and DEBUG, OVERFLOW, and QUADWORD are disabled.
- /OPTIMIZE
- /PRESERVE
- /LIBRARY
- /RETRY_COUNT
- /LIST
- /SYMBOLS
- /OBJECT
- /TIE
- /SHOW
- /UNALIGNED
- /WARN