Microsoft KB Archive/152131

= FIX: C1001: Extern in Function Call or Bad Type in Prototype =

Article ID: 152131

Article Last Modified on 7/5/2005

-

APPLIES TO


 * Microsoft Visual C++ 4.2 Enterprise Edition
 * Microsoft Visual C++ 4.2 Professional Edition

-



This article was previously published under Q152131



SYMPTOMS
When using extern in a function call, the compiler generates an Internal Compiler Error (ICE). A syntax error should be generated instead.

When specifying an illegal type in a function prototype within a function, the compiler generates an ICE. A syntax error should be generated instead.

Both of the above situations result in the following error message when using Visual C++ 4.0:

fatal error C1001: INTERNAL COMPILER ERROR

(compiler file 'msc1.cpp', line 899)

When using Visual C++ 4.1, the error message in both situations is the following:

fatal error C1001: INTERNAL COMPILER ERROR

(compiler file 'msc1.cpp', line 1090)

When using Visual C++ 4.2, the error message in both situations is the following:

fatal error C1001: INTERNAL COMPILER ERROR

(compiler file 'msc1.cpp', line 1089)



RESOLUTION
Do not use extern in a function call.

Specify a legal type in the argument list of the function prototype.



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ version 5.0.



Sample Code
/* Compile options needed: none */   //Code sample 1 int func(int); void main { extern func(1);  //C1001 (ICE) on this line; "extern" is illegal }  //Code sample 2 int func(int); void main { extern int func(1); //C1001 (ICE); "1" is an illegal type }

Additional query words: kbVC400bug

Keywords: kbbug kbfix kbvc500fix kbcpponly kbcompiler KB152131

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.