ILE C/C++ Compiler Reference


namemanglingrule

C++ compiler only
Read syntax diagramSkip visual syntax diagramnamemanglingrule 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

  1. #pragma namemanglingrule is allowed in global, class, and function scopes. It has no effect on a block scope function declaration with external linkage.
  2. 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.
  3. The #pragma namemanglingrule directive is not supported if the RTBND(*LLP64) compile option is used.

[ Top of Page | Previous Page | Next Page | Contents | Index ]