ILE C/C++ Compiler Reference

namemanglingrule syntax
.-on--.
>>-#--pragma--namemanglingrule--(--+-fnparmtype,--+-off-+-+----->
| '-pop-' |
| .-on--. |
'-fnparmscmp,--+-off-+-'
'-pop-'
>--)-----------------------------------------------------------><
Description
Provides fine-grained control over the name mangling scheme
in effect for selected portions of source code, specifically with
respect to the mangling of cv-qualifiers in function parameters.
The #pragma namemanglingrule directive allows you to control
whether top-level cv-qualifiers are mangled in function
parameters or whether intermediate-level cv-qualifiers
are to be considered when the compiler compares repeated function
parameters for equivalence.
Defaults
fnparmtype, on when #pragma namemangling(ansi|v6) is
in effect. Otherwise, the default is fnparmtype, off.
fnparmscmp, on when #pragma namemangling(ansi) is
in effect. Otherwise, the default is fnparmscmp, off.
Parameters
- fnparmtype, on
- Top-level cv-qualifiers are not encoded in the
mangled name of a function parameter. Also, top-level cv-qualifiers
are ignored when repeated function parameters are compared for equivalence;
function parameters that differ only by the use of a top-level
cv-qualifier are considered equivalent and are mangled according
to the compressed encoding scheme. This setting is compatible with
ILE C++ V5R3M0 and later releases.
- fnparmtype, off
- Top-level cv-qualifiers are encoded in the mangled
name of a function parameter. Also, repeated function parameters that
differ by the use of cv-qualifiers are not considered equivalent
and are mangled as separate parameters. This setting is compatible
with ILE C++ V5R2M0 and earlier releases.
- fnparmtype, pop
- Reverts to the previous fnparmtype setting in effect.
If no previous settings are in effect, the default fnparmtype setting
is used.
- fnparmscmp, on
- Intermediate-level cv-qualifiers are considered
when repeated function parameters are compared for equivalence; repeated
function parameters that differ by the use of intermediate-level
cv-qualifiers are mangled as separate parameters. This setting
is compatible with ILE C++ V7R1M0 and later releases.
- fnparmscmp, off
- Intermediate-level cv-qualifiers are ignored when
repeated function parameters are compared for equivalence; function
parameters that differ only by the use of an intermediate-level
cv-qualifier are considered equivalent and are mangled according
to the compressed encoding scheme. This setting is compatible with
ILE C++ V6R1M0 and earlier releases.
- fnparmscmp, pop
- Reverts to the previous fnparmscmp setting in effect.
If no previous settings are in effect, the default fnparmscmp setting
is used.
Notes on
Usage
- #pragma namemanglingrule is allowed in global, class,
and function scopes. It has no effect on a block scope function declaration
with external linkage.
- Different pragma settings can be specified in front of function
declarations and definitions. If #pragma namemanglingrule settings
in subsequent declarations and definitions conflict, the compiler
ignores those settings and issues a warning message.
- The #pragma namemanglingrule directive is not supported
if the RTBND(*LLP64) compile option is used.
[ Top of Page | Previous Page | Next Page | Contents |
Index ]