Imported Upstream version 1.3.1
[platform/upstream/libunwind.git] / src / coredump / _UCD_access_reg_linux.c
index 4b5994f..208d8d2 100644 (file)
@@ -39,17 +39,20 @@ _UCD_access_reg (unw_addr_space_t as,
       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)
@@ -120,7 +123,7 @@ _UCD_access_reg (unw_addr_space_t as,
 #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];