parse_lsda_header (struct _Unwind_Context *context, const unsigned char *p,
lsda_header_info *info)
{
- _Unwind_Word tmp;
+ _uleb128_t tmp;
unsigned char lpstart_encoding;
info->Start = (context ? _Unwind_GetRegionStart (context) : 0);
/* Parse the LSDA header. */
p = parse_lsda_header (context, language_specific_data, &info);
+#ifdef HAVE_GETIPINFO
ip = _Unwind_GetIPInfo (context, &ip_before_insn);
+#else
+ ip = _Unwind_GetIP (context);
+#endif
if (! ip_before_insn)
--ip;
landing_pad = 0;
return _URC_CONTINUE_UNWIND;
else
{
- _Unwind_Word cs_lp, cs_action;
+ _uleb128_t cs_lp, cs_action;
do
{
p = read_uleb128 (p, &cs_lp);
/* Can never have null landing pad for sjlj -- that would have
been indicated by a -1 call site index. */
- landing_pad = cs_lp + 1;
+ landing_pad = (_Unwind_Ptr)cs_lp + 1;
if (cs_action)
action_record = info.action_table + cs_action - 1;
goto found_something;
while (p < info.action_table)
{
_Unwind_Ptr cs_start, cs_len, cs_lp;
- _Unwind_Word cs_action;
+ _uleb128_t cs_action;
/* Note that all call-site encodings are "absolute" displacements. */
p = read_encoded_value (0, info.call_site_encoding, p, &cs_start);