Microsoft KB Archive/87527

From BetaArchive Wiki

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.



MORE INFORMATION

Sample Code

/* Compile options needed: /Oi
*/ 
/* // Remove the comment from this section to cause the C2172 error
#include <memory.h>
*/ 
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

Keywords : kb16bitonly
Issue type :
Technology : kbVCsearch kbAudDeveloper kbCVCComp


Last Reviewed: May 8, 2001
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.