(linux_scratch_loc): Add a default-case which simply returns the
register-location. This is so that special-cases such
as r0 are handled properly.
(Logical change 1.117)
diff --git a/src/ia64/Gregs-ia64.c b/src/ia64/Gregs-ia64.c
index 66710c5..765353c 100644
--- a/src/ia64/Gregs-ia64.c
+++ b/src/ia64/Gregs-ia64.c
@@ -87,6 +87,9 @@
case UNW_IA64_AR_CSD: addr += LINUX_SC_AR_CSD_OFF; break;
case UNW_IA64_AR_SSD: addr += LINUX_SC_AR_SSD_OFF; break;
case UNW_IA64_AR_CCV: addr += LINUX_SC_AR_CCV; break;
+
+ default:
+ return IA64_REG_LOC (c, reg);
}
return IA64_LOC_ADDR (addr, 0);
@@ -119,6 +122,9 @@
case UNW_IA64_FR + 6 ... UNW_IA64_FR + 11:
addr += LINUX_PT_F6_OFF + 16 * (reg - (UNW_IA64_FR + 6));
return IA64_LOC_ADDR (addr, IA64_LOC_TYPE_FP);
+
+ default:
+ return IA64_REG_LOC (c, reg);
}
return IA64_LOC_ADDR (addr, 0);
@@ -147,6 +153,9 @@
case UNW_IA64_AR_RSC: addr += LINUX_OLD_PT_RSC_OFF; break;
case UNW_IA64_AR_CCV: addr += LINUX_OLD_PT_CCV_OFF; break;
+
+ default:
+ return IA64_REG_LOC (c, reg);
}
return IA64_LOC_ADDR (addr, 0);