C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)

Usage Guidelines
The PUSH pragma can be entered only in the source text.
Only the values EXTERN_DATA, FIELDALIGN, LIST, OVERFLOW_TRAPS, REFALIGNED, and
WARN can be used as operands to the PUSH pragma. The use of any other pragma as an
operand is flagged as an error.
Each PUSH pragma has a separate stack, each of which holds up to 32 values.
REFALIGNED
The REFALIGNED pragma specifies the default reference alignment for pointers in native C and
C++ programs.
REFALIGNED value [ pointer-name-list ]
value:
{ 2 | 8 }
pointer-name-list:
pointer-name [ pointer-name-list ]
pointer-name:
{ type-name | variable-name }
The pragma default settings are:
SYSTYPE OSSSYSTYPE GUARDIAN
N.A.N.A.TNS C compiler
N.A.N.A.G-series TNS c89 utility
REFALIGNED 8REFALIGNED 8TNS/R native C and C++ compilers
REFALIGNED 8REFALIGNED 8Native c89 and c99 utilities
REFALIGNED 8REFALIGNED 8TNS/E native C and C++ compilers
Usage Guidelines
The REFALIGNED pragma can be entered on the compiler RUN command line or in the source
text, or it can be specified with the -Wrefalign flag of the c89 or the c99 utility.
In native mode, if you specify REFALIGNED on the command line, you cannot include a
pointer-name-list. A list is permitted only when the pragma appears in the source text.
The default code generation for pointer dereferencing operations (REFALIGNED 8) expects
the pointer to contain an address that satisfies the alignment requirements of the object being
pointed to.
For example, a 4-byte object should have an address that is a multiple of 4. If the object is at
an address that does not satisfy its alignment requirements, the default code generation causes
a compatibility trap. To avoid this, specify REFALIGNED 2 on the pointer to the object. This
results in code generation that assumes the dereferenced object is not properly aligned and
compensates for the misalignment.
Pragma REFALIGNED without a pointer-name-list specifies the default alignment for
the entire compilation and can be used in the command line or in the source text.
A global REFALIGNED pragma affects only pointers that do not point to classes, structs, or
unions.
REFALIGNED 231