PRB: Fastcalls Incompatible with Disabled MS Extensions (/Za)

ID Number: Q66782

6.00 6.00a 6.00ax | 6.00 6.00a

MS-DOS | OS/2

buglist6.00 buglist6.00a buglist6.00ax fixlist7.00

Summary:

SYMPTOMS

The Microsoft C versions 6.0, 6.0a, and C 6.0ax compiler options

/Za and /Gr are not compatible. /Gr enables the register calling

convention for passing function parameters in registers, and /Za

disables Microsoft-specific extensions to the C language. In C 6.0,

6.0a, and 6.0ax, the register calling convention relies on

Microsoft extensions being enabled (/Ze).

If you try to specify both /Gr and /Za, the compiler will halt with

the following error:

Command line error D2020 : -Gr option requires extended

keywords to be enabled (-Ze)

STATUS

Removal of this limitation is being considered for a future release

of the C compiler.

Microsoft has confirmed this to be a problem in C versions 6.0,

6.0a, and 6.0ax. This problem was corrected in C/C++ version 7.0.

Additional reference words: 6.00 6.00a 6.00ax _fastcall