/* Generated by ./xlat/gen.sh from ./xlat/sigfpe_codes.in; do not edit. */
#if !(defined(FPE_INTDIV) || (defined(HAVE_DECL_FPE_INTDIV) && HAVE_DECL_FPE_INTDIV))
# define FPE_INTDIV 1
#endif
#if !(defined(FPE_INTOVF) || (defined(HAVE_DECL_FPE_INTOVF) && HAVE_DECL_FPE_INTOVF))
# define FPE_INTOVF 2
#endif
#if !(defined(FPE_FLTDIV) || (defined(HAVE_DECL_FPE_FLTDIV) && HAVE_DECL_FPE_FLTDIV))
# define FPE_FLTDIV 3
#endif
#if !(defined(FPE_FLTOVF) || (defined(HAVE_DECL_FPE_FLTOVF) && HAVE_DECL_FPE_FLTOVF))
# define FPE_FLTOVF 4
#endif
#if !(defined(FPE_FLTUND) || (defined(HAVE_DECL_FPE_FLTUND) && HAVE_DECL_FPE_FLTUND))
# define FPE_FLTUND 5
#endif
#if !(defined(FPE_FLTRES) || (defined(HAVE_DECL_FPE_FLTRES) && HAVE_DECL_FPE_FLTRES))
# define FPE_FLTRES 6
#endif
#if !(defined(FPE_FLTINV) || (defined(HAVE_DECL_FPE_FLTINV) && HAVE_DECL_FPE_FLTINV))
# define FPE_FLTINV 7
#endif
#if !(defined(FPE_FLTSUB) || (defined(HAVE_DECL_FPE_FLTSUB) && HAVE_DECL_FPE_FLTSUB))
# define FPE_FLTSUB 8
#endif

#ifdef IN_MPERS

extern const struct xlat sigfpe_codes[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat sigfpe_codes[] = {
 XLAT(FPE_INTDIV),
 XLAT(FPE_INTOVF),
 XLAT(FPE_FLTDIV),
 XLAT(FPE_FLTOVF),
 XLAT(FPE_FLTUND),
 XLAT(FPE_FLTRES),
 XLAT(FPE_FLTINV),
 XLAT(FPE_FLTSUB),
#if defined(FPE_MDAOVF) || (defined(HAVE_DECL_FPE_MDAOVF) && HAVE_DECL_FPE_MDAOVF)
  XLAT(FPE_MDAOVF),
#endif
#if defined(__FPE_DECOVF) || (defined(HAVE_DECL___FPE_DECOVF) && HAVE_DECL___FPE_DECOVF)
  XLAT(__FPE_DECOVF),
#endif
#if defined(__FPE_DECDIV) || (defined(HAVE_DECL___FPE_DECDIV) && HAVE_DECL___FPE_DECDIV)
  XLAT(__FPE_DECDIV),
#endif
#if defined(__FPE_DECERR) || (defined(HAVE_DECL___FPE_DECERR) && HAVE_DECL___FPE_DECERR)
  XLAT(__FPE_DECERR),
#endif
#if defined(__FPE_INVASC) || (defined(HAVE_DECL___FPE_INVASC) && HAVE_DECL___FPE_INVASC)
  XLAT(__FPE_INVASC),
#endif
#if defined(__FPE_INVDEC) || (defined(HAVE_DECL___FPE_INVDEC) && HAVE_DECL___FPE_INVDEC)
  XLAT(__FPE_INVDEC),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
