FIX: C1001 on Cast to Base from Derived Friend Class
Article ID: 148255
Article Last Modified on 7/5/2005
APPLIES TO
- Microsoft Visual C++ 4.0 Professional Edition
- Microsoft Visual C++ 4.1 Subscription
- Microsoft Visual C++ 4.2 Professional Edition
- Microsoft Visual C++ 4.2 Enterprise Edition
- Microsoft Visual C++ 5.0 Learning Edition
- Microsoft Visual C++ 5.0 Learning Edition
This article was previously published under Q148255
SYMPTOMS
When an argument in a function call is passed by value and is cast to a
base class from a derived class that is also a friend of the base class,
the compiler generates this error:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file '\school.tp3\test\c10\src\P2\386\codegen.c', line 359)
This occurs only when C++ exception handling is enabled (/GX) and the base
class defines a destructor.
RESOLUTION
There are several workarounds:
- Pass the class by reference.
-or-
- Remove the cast. It is unnecessary.
-or-
- Do not use the /GX compiler option if exception handling isn't required.
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.
Additional query words: 10.00 10.10 10.20 utilities
Keywords: kbbug kbfix kbprogramming kbcpponly kbcompiler KB148255