-/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
#endif
/* This is the type of the argument to `wait'.
- With GCC 2, the funky union causes redeclarations with either `int *' or
- `union wait *' to be allowed. */
-#if !defined (__GNUC__) || __GNUC__ < 2 || 1 /* GCC broken as of 2.3.1 */
-#define __WAIT_STATUS __ptr_t
+ NOTE: Since this functionality is volatile, I'm disabling the use of it for
+ now.
+
+With GCC 2.6.1 and later, the funky union causes redeclarations with either
+ `int *' or `union wait *' to be allowed without complaint.
+ __WAIT_STATUS_DEFN is the type used in the actual function
+ definitions. */
+
+#if (!defined (__GNUC__) || __GNUC__ < 2 || \
+ /*(__GNUC__ == 2 && __GNUC_MINOR__ < 6)*/ 1)
+#define __WAIT_STATUS __ptr_t
+#define __WAIT_STATUS_DEFN __ptr_t
#else
-#define __WAIT_STATUS union { union wait *__unionptr; int *__intptr; }
+/* This works in GCC 2.6.1 and later. */
+typedef union
+ {
+ union wait *__uptr;
+ int *__iptr;
+ } __WAIT_STATUS __attribute__ ((transparent_union));
+#define __WAIT_STATUS_DEFN int *
#endif
#else /* Don't use BSD. */
#define __WAIT_INT(status) (status)
#define __WAIT_STATUS int *
+#define __WAIT_STATUS_DEFN int *
#endif /* Use BSD. */
#define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status))
#ifdef __USE_BSD
+#define WCOREFLAG __WCOREFLAG
#define WCOREDUMP(status) __WCOREDUMP(__WAIT_INT(status))
#define W_EXITCODE(ret, sig) __W_EXITCODE(ret, sig)
#define W_STOPCODE(sig) __W_STOPCODE(sig)