Microsoft KB Archive/168383

= FIX: C1001 p2symtab.c, line 2221 In Direct Init of Static =

Article ID: 168383

Article Last Modified on 7/5/2005

-

APPLIES TO


 * Microsoft Visual C++ 5.0 Enterprise Edition
 * Microsoft Visual C++ 5.0 Professional Edition

-



This article was previously published under Q168383



SYMPTOMS
When a member of an imported class attempts direct initialization of a static local variable of class type with a constant string literal, the following error may result:

fatal error C1001: INTERNAL COMPILER ERROR

(compiler file 'E:\utc\src\\P2\p2symtab.c', line 2221)

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
Simplify the expression. Declare a local static constant string literal, then use that local to initialize the static local variable of class type.



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.



Steps to Reproduce Behavior
// compiler options needed: /c

struct A  {

A(const char * a);

};

struct __declspec(dllimport) B  {

void f { static A isa = "...";

// A workaround is to break up the expression //static const char *p = "..."; //static A isa = p ; } ;  };

Keywords: kberrmsg kbbug kbfix kbvc600fix kbcpponly kbcompiler KB168383

-

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

© Microsoft Corporation. All rights reserved.