[comp.lang.c++] C++ 1.1 function argument checking bug

serge@ucbvax.UUCP (03/26/87)

% cat t.c
typedef enum One { ONE=1, TWO=2 } One;
typedef enum Two { THREE=1, FOUR=2 } Two;

#ifdef	c_plusplus
extern	void	f(One o);
#endif

void
f(o)
	One	o;
{
	o = o;
}

main()
{
	f(FOUR);
}
% CC t.c
CC  t.c:
"t.c", line 9: warning: old style definition of f()
cc   t..c -lC
% lint t.c
f, arg. 1 used inconsistently	t.c(11)  ::  t.c(17)
% exit

						Serge
						serge@ucbvax.berkeley.edu
						...!ucbvax!serge

bs@alice.UUCP (03/29/87)

``that is not a bug; it is a feature''

C++ like C does not recognize ennumerations as separate types (whatever
4.? lint says). enumerators are constants of type int.

Note that even the following is legal (if not sensible):

enum E { blue, green } e = 7;

Comments to /dev/nul or ANSI - please.