Microsoft KB Archive/164000

= FIX: C1001 Compiler File MAIN.C Line 413 =

Article ID: 164000

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 Q164000



SYMPTOMS
Calling typeid with a temporary object causes the following error:

fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'd:\backend\src\P2\main.c', line 413)

Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information

Error executing cl.exe.



RESOLUTION
Instead of calling typeid with a temporary object, create a stack object and then call typeid, referencing the stack object.



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 */

#include

struct X { X {}; ~X {}; };

// This main function will cause the error. void main {      const type_info& t = typeid(X); }

// For the workaround, replace main above with the following: void main {      X y;       const type_info& t = typeid(y); }

Additional query words: kbVC420bug kbDSupport typeid RTTI

Keywords: kbbug kbfix kblangcpp kbvc500fix kbcpponly kbcode kbcompiler KB164000

-

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

© Microsoft Corporation. All rights reserved.