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 ';'?)