Article: Q131013
Product(s): Microsoft C Compiler
Version(s): 2.0,2.1
Operating System(s):
Keyword(s):
Last Modified: 25-JUL-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft C/C++ Compiler (CL.EXE), included with:
- *EDITOR Please do not choose this product*Microsoft Visual C++ 32-bit Edition* use 241, 265, 225, versions 2.0, 2.1
-------------------------------------------------------------------------------
SYMPTOMS
========
An attempt to compile code that defines the exception handling mechanism in a
function that takes a class argument by value, causes the compiler to generate
the following error message:
bug.cxx(19) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file
'd:\b_bld\c2.m2\P2\main.c', line 374)
RESOLUTION
==========
Pass class A by reference instead of by value in the Func call in the sample
code in this article.
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 Microsoft Visual C++,
32-bit Edition, version 4.0.
MORE INFORMATION
================
Sample Code to Reproduce Problem
--------------------------------
/* Compile options needed: -GX
bug.cpp
*/
class A
{
public:
A();
~A();
};
int Func(A)
//To work around the problem, replace the previous with the line below.
//int Func (A&) // Change this line from a comment to executed code
{
try
{
return (1);
}
catch (int i)
{
return (i);
}
;
}
Additional query words: 2.00 2.10 9.0 9.00 9.1 9.10
======================================================================
Keywords :
Technology : kbVCsearch kbAudDeveloper kbCVCComp
Version : :2.0,2.1
Issue type : kbbug
Solution Type : kbfix
=============================================================================