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

static const struct xlat sigsegv_codes[] = {
#if !(defined(SEGV_MAPERR) || (defined(HAVE_DECL_SEGV_MAPERR) && HAVE_DECL_SEGV_MAPERR))
# define SEGV_MAPERR 1
#endif
 XLAT(SEGV_MAPERR),
#if !(defined(SEGV_ACCERR) || (defined(HAVE_DECL_SEGV_ACCERR) && HAVE_DECL_SEGV_ACCERR))
# define SEGV_ACCERR 2
#endif
 XLAT(SEGV_ACCERR),
#if !(defined(SEGV_BNDERR) || (defined(HAVE_DECL_SEGV_BNDERR) && HAVE_DECL_SEGV_BNDERR))
# define SEGV_BNDERR 3
#endif
 XLAT(SEGV_BNDERR),
 XLAT_END
};
