/* Generated by ./xlat/gen.sh from ./xlat/sigchld_codes.in; do not edit. */

static const struct xlat sigchld_codes[] = {
#if !(defined(CLD_EXITED) || (defined(HAVE_DECL_CLD_EXITED) && HAVE_DECL_CLD_EXITED))
# define CLD_EXITED 1
#endif
 XLAT(CLD_EXITED),
#if !(defined(CLD_KILLED) || (defined(HAVE_DECL_CLD_KILLED) && HAVE_DECL_CLD_KILLED))
# define CLD_KILLED 2
#endif
 XLAT(CLD_KILLED),
#if !(defined(CLD_DUMPED) || (defined(HAVE_DECL_CLD_DUMPED) && HAVE_DECL_CLD_DUMPED))
# define CLD_DUMPED 3
#endif
 XLAT(CLD_DUMPED),
#if !(defined(CLD_TRAPPED) || (defined(HAVE_DECL_CLD_TRAPPED) && HAVE_DECL_CLD_TRAPPED))
# define CLD_TRAPPED 4
#endif
 XLAT(CLD_TRAPPED),
#if !(defined(CLD_STOPPED) || (defined(HAVE_DECL_CLD_STOPPED) && HAVE_DECL_CLD_STOPPED))
# define CLD_STOPPED 5
#endif
 XLAT(CLD_STOPPED),
#if !(defined(CLD_CONTINUED) || (defined(HAVE_DECL_CLD_CONTINUED) && HAVE_DECL_CLD_CONTINUED))
# define CLD_CONTINUED 6
#endif
 XLAT(CLD_CONTINUED),
 XLAT_END
};
