javaop.h type collision on AIX

David Edelsohn dje@watson.ibm.com
Sat Nov 14 15:34:00 GMT 1998


	javaop.h defines some size-dependent types:

typedef char            int8;
typedef unsigned char   uint8;
#ifndef int16
#define int16 short
#endif
typedef unsigned int16  uint16;

#ifndef int32
#define int32 long
#endif
typedef unsigned int32  uint32;

	AIX 4.3.1 also typedefs those types in /usr/include/sys/inttypes.h
which is conflicting with the javaop definitions.  Unlike the other types,
int8 is not protected with #ifndef.  Also, while uint8 is defined as
unsigned char, int8 simply is defined as char without modifier.  On some
targets, char is unsigned by default, so I do not think this is what you
intended. 

	I think that there are a couple of problems: signed-ness
assumptions and not protecting all types of previous definitions.

David



More information about the Gcc-bugs mailing list