/*  DO NOT EDIT THIS FILE.

    It has been auto-edited by fixincludes from:

	"fixinc/tests/inc/sys/types.h"

    This had to be done to correct non-standard usages in the
    original, manufacturer supplied header file.  */



#if defined( GNU_TYPES_CHECK )
#if !defined(_GCC_PTRDIFF_T)
#define _GCC_PTRDIFF_T
typedef __PTRDIFF_TYPE__ ptrdiff_t;
#endif
 /* long int */
#if !defined(_GCC_SIZE_T)
#define _GCC_SIZE_T
typedef __SIZE_TYPE__ size_t;
#endif
 /* uint_t */
#ifndef __cplusplus
#if !defined(_GCC_WCHAR_T) && ! defined(__cplusplus)
#define _GCC_WCHAR_T
typedef __WCHAR_TYPE__ wchar_t;
#endif

#endif /* ushort_t */
#endif  /* GNU_TYPES_CHECK */
