return -UNW_EINVAL;
}
+ if (regnum < 0)
+ goto badreg;
+
#if defined(UNW_TARGET_AARCH64)
- if (regnum < 0 || regnum >= UNW_AARCH64_FPCR)
+ if (regnum >= UNW_AARCH64_FPCR)
goto badreg;
#elif defined(UNW_TARGET_ARM)
- if (regnum < 0 || regnum >= 16)
+ if (regnum >= 16)
goto badreg;
#elif defined(UNW_TARGET_SH)
- if (regnum < 0 || regnum > UNW_SH_PR)
+ if (regnum > UNW_SH_PR)
goto badreg;
#elif defined(UNW_TARGET_TILEGX)
- if (regnum < 0 || regnum > UNW_TILEGX_CFA)
+ if (regnum > UNW_TILEGX_CFA)
goto badreg;
#else
#if defined(UNW_TARGET_MIPS)
#error Port me
#endif
- if (regnum < 0 || regnum >= (unw_regnum_t)ARRAY_SIZE(remap_regs))
+ if (regnum >= (unw_regnum_t)ARRAY_SIZE(remap_regs))
goto badreg;
regnum = remap_regs[regnum];