FIX: C1001 Compiler File MAIN.C Line 413 (164000)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Enterprise Edition 4.2
  • Microsoft Visual C++, 32-bit Professional Edition 4.2

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.

MORE INFORMATION

Sample Code

   /* Compile options needed: none
   */ 

   #include <typeinfo>

   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);
   }
				

Modification Type:MinorLast Reviewed:7/5/2005
Keywords:kbbug kbcode kbCompiler kbCPPonly kbfix kbLangCPP kbVC500fix KB164000