PRB: C 6.0a/6.0ax GP Fault Under OS/2, Hang Under DOS with /Gi

ID Number: Q66322

6.00a 6.00ax | 6.00a

MS-DOS | OS/2

buglist6.00a buglist6.00ax fixlist7.00

Summary:

SYMPTOMS

The Microsoft C Compiler versions 6.0a and 6.0ax produce the

following internal compiler errors when the sample program below is

compiled with incremental compilation (/Gi):

Under OS/2

----------

Command line error D2030 : INTERNAL COMPILER ERROR IN 'P3'

Contact Microsoft Product Support Services

Under MS-DOS (Utilizing Extended Memory with /EM)

-------------------------------------------------

CL1319 Error: Internal error - unrecoverable fault

Compiling under MS-DOS without extended memory results in a system

hang during pass three of the compiler. The D2030 error under OS/2

indicates that the third pass of the compiler ("P3") is

encountering a general protection fault and the CL1319 also

indicates a protected mode protection violation.

RESOLUTION

The following are three possible workarounds for this problem:

- Compile without the /Gi option.

-or-

- Compile with the quick compile (/qc) option.

-or-

- Compile for medium (/AM) or large (/AL) memory model, if

possible.

STATUS

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

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

More Information:

Sample Code

-----------

/* Compile options needed: /Gi

*/

#include <stdio.h>

void func1(void)

{

char Key;

switch( Key = getch() ) {

case '1' : break;

case '2' :

default: break;

}

}

void main(void)

{

func1();

}

Additional reference words: 6.00a 6.00ax