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

| c1 | filler |
----------------------------------
| <0:2=b1><3:5=b2><6:15=filler> |
----------------------------------
| <0:11=b3><12:15=filler> |
----------------------------------
| c2 | |
----------------------------------
5. This example shows the alignment of a structure with an array member:
#pragma fieldalign shared2
struct { char c1;
struct { char c2;
int i1;
} a[2];
} s1;
s1: ----------------------------------
| c1 | a[0].c2 |
----------------------------------
|a[0].i1 |
----------------------------------
|filler for a[0] | a[1].c2 |
----------------------------------
|a[1].i1 |
----------------------------------
|filler for a[1] | |
----------------------------------
FORCE_VTBL
The FORCE_VTBL command-line option forces definition of virtual function tables in cases where
the heuristic used by the compiler to decide on definition of virtual function tables provides no
guidance. The default behavior is to make the definition a local static entity. This option is valid
only for native C++.
FORCE_VTBL
The pragma default settings are:
SYSTYPE OSSSYSTYPE GUARDIAN
N.A.N.A.TNS C compiler
N.A.N.A.G-series TNS c89 utility
Not setNot setTNS/R native C and C++ compilers
Not setNot setNative c89 and c99 utilities
Not setNot setTNS/E native C and C++ compilers
Usage Guidelines
FORCE_VTBL can be entered on the compiler RUN command line (NMCPLUS or CPPCOMP)
or be specified with the -Wforce_vtbl option of the c89 or c99 utility.
The FORCE_VTBL command-line option forces the definition of the virtual function table for
classes in compilation units that do not contain the first non-inline, non-pure virtual function of
194 Compiler Pragmas