FIX: Error Messages May Say "short" or "int" Instead of "enum"

ID: Q66778


The information in this article applies to:
  • Microsoft C/C++ Compiler (CL.EXE), included with:
    • Microsoft C for MS-DOS, versions 6.0, 6.0a, 6.0ax
    • Microsoft C for OS/2, versions 6.0, 6.0a
    • Microsoft C/C++ for MS-DOS, version 7.0
    • Microsoft Visual C++ for Windows, versions 1.0, 1.5
    • Microsoft Visual C++ 32-bit Edition, versions 1.0, 2.0, 4.0


SYMPTOMS

Because an enumerated type is handled internally the same as a short type, certain compiler error messages may refer to a "short" even though the error involves an "enum". The following sample code contains an error to demonstrate this situation:


   enum {A, B, C}      /* missing ';' at end */ 
   double y; 
When the above code is compiled with the Microsoft C compiler, the following error message is generated:
error C2139: type following 'short' is illegal
Visual C++ for Windows and Visual C++ 32-bit Edition return:
error C2632: 'int' followed by 'double' is illegal
In this particular case, the error should say:
type following 'enum' is illegal"
However, the compiler does not keep track of whether or not an item was specified as an enum.


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.

Visual C++ 5.0 compiler generates the following error message:

error C2628: '__unnamed' followed by 'double' is illegal (did you forget a ';'?)

Additional query words: 8.00 8.00c 9.00

Keywords : kbCompiler kbVC500fix
Version : :1.0,1.5,2.0,4.0,6.0,6.0a,6.0ax
Platform : MS-DOS NT OS/2 WINDOWS
Issue type : kbbug


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