FIX: C1001 in Third-Party STL Code Using Visual Studio 97 SP3

ID: Q178512


The information in this article applies to:
  • The C/C++ Compiler (CL.EXE), used with:
    • Microsoft Visual C++, 32-bit Editions, version 5.0sp3
    • Microsoft Visual Studio 97sp3


SYMPTOMS

If you are using a third-party Standard Template Library (STL) (such as the Hewlett-Packard implementation), and compile after applying Visual Studio 97 Service Pack 3, the following error may be generated:

testerr.cpp bstring.h(2322) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'E:\utc\src\\P2\main.c', line 379)
Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more Information.


RESOLUTION

The following are suggested workarounds:

  • Separate the construction and return of a temporary object. In the example below, replace the return statement with the respective commented statements:
    
           if (length())
          {
               return basic_string<charT>(data()+pos, (n > (length()-pos)) ?
                      (length()-pos) : n);
    
               //basic_string<charT> bt(data()+pos, (n > (length()-pos)) ?
               //     (length()-pos) : n);
               //return bt;
          }
           else
          {
           return basic_string<charT>();// C1001 on this line
               // basic_string<charT> bt;
               // return bt;
          }
       } 


  • Use Visual Studio 97 SP2.


  • Instead of using the Hewlett-Packard STL, use the STL provided in Visual C++ 5.0. See any STL sample in the Visual C++ Online documentation for usage information. You may also read the comprehensive information provided on the Web at: http://www.microsoft.com/visualc/stl.



STATUS

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

Additional query words:

Keywords : kbCompiler kbVFp600fix kbVS97sp3bug
Version : winnt:5.0sp3
Platform : winnt
Issue type : kbbug


Last Reviewed: February 21, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.