Microsoft KB Archive/87527

{|
 * width="100%"|

BUG: C1001: grammar.c, line 179, 180, or 192

 * }

Q87527

-

The information in this article applies to:


 * The C/C++ Compiler (CL.EXE), included with:
 * Microsoft C/C++ for MS-DOS, version 7.0
 * Microsoft Visual C++, versions 1.0, 1.5

-

SYMPTOMS
The following error message

  fatal error C1001: INTERNAL COMPILER ERROR (compiler file '@(#)grammar.c:1.147, line 179)

is produced by Microsoft C/C++ version 7.0 when the following conditions are all true:


 * The source is compiled with /Oi
 * One of the intrinsic functions is not prototyped
 * A non-pointer value is passed as an argument to that intrinsic function where a pointer is expected

Microsoft C/C++ compiler versions 8.0 and 8.0c generate the following errors:

 

  fatal error C1001: INTERNAL COMPILER ERROR (compiler file '@(#)grammar.c:1.147, line 180)

 

  fatal error C1001: internal compiler error (compiler file '@(#)grammar.c:1.147, line 192)



RESOLUTION
Include the prototype for the function. The compiler will then flag the error as

  C2172: 'function': actual parameter is not a pointer

The program will compile without error once the parameter is corrected.

STATUS
Microsoft has confirmed this to be a bug in the products listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available.

This is not a problem in Visual C++ 32-bit Edition.

Sample Code
/* Compile options needed: /Oi /* // Remove the comment from this section to cause the C2172 error struct s { char a, b, c; }; void func( void ); void func( void ) {  struct s x;   memset( x, 0, 5 ); // The correct code is: //   memset( &x, 0, 5); } Additional query words: 7.00 8.00 8.00c 1.00 1.50
 * 1) include 

Keywords : kb16bitonly

Issue type :

Technology : kbVCsearch kbAudDeveloper kbCVCComp