{
/* Make sure address is computed correctly as a 32bit
integer even if CORE_ADDR is 64 bit wide. */
- struct minimal_symbol *s;
+ struct bound_minimal_symbol s;
CORE_ADDR call_dest;
call_dest = pc + 5 + extract_signed_integer (buf, 4, byte_order);
call_dest = call_dest & 0xffffffffU;
s = lookup_minimal_symbol_by_pc (call_dest);
- if (s != NULL
- && SYMBOL_LINKAGE_NAME (s) != NULL
- && strcmp (SYMBOL_LINKAGE_NAME (s), "__main") == 0)
+ if (s.minsym != NULL
+ && SYMBOL_LINKAGE_NAME (s.minsym) != NULL
+ && strcmp (SYMBOL_LINKAGE_NAME (s.minsym), "__main") == 0)
pc += 5;
}
}
/* Return whether PC points inside a stack trampoline. */
static int
-i386_in_stack_tramp_p (struct gdbarch *gdbarch, CORE_ADDR pc)
+i386_in_stack_tramp_p (CORE_ADDR pc)
{
gdb_byte insn;
const char *name;
void **this_cache)
{
if (frame_relative_level (this_frame) == 0)
- return i386_in_stack_tramp_p (get_frame_arch (this_frame),
- get_frame_pc (this_frame));
+ return i386_in_stack_tramp_p (get_frame_pc (this_frame));
else
return 0;
}
unsigned long indirect =
read_memory_unsigned_integer (pc + 2, 4, byte_order);
struct minimal_symbol *indsym =
- indirect ? lookup_minimal_symbol_by_pc (indirect) : 0;
+ indirect ? lookup_minimal_symbol_by_pc (indirect).minsym : 0;
const char *symname = indsym ? SYMBOL_LINKAGE_NAME (indsym) : 0;
if (symname)
char *regname;
int len;
struct stoken str;
+ char *endp;
got_minus[0] = 0;
if (*s == '+')
got_minus[0] = 1;
}
- displacements[0] = strtol (s, (char **) &s, 10);
+ displacements[0] = strtol (s, &endp, 10);
+ s = endp;
if (*s != '+' && *s != '-')
{
got_minus[1] = 1;
}
- displacements[1] = strtol (s, (char **) &s, 10);
+ displacements[1] = strtol (s, &endp, 10);
+ s = endp;
if (*s != '+' && *s != '-')
{
got_minus[2] = 1;
}
- displacements[2] = strtol (s, (char **) &s, 10);
+ displacements[2] = strtol (s, &endp, 10);
+ s = endp;
if (*s != '(' || s[1] != '%')
break;
break;
if (isdigit (*s))
- offset = strtol (s, (char **) &s, 10);
+ {
+ char *endp;
+
+ offset = strtol (s, &endp, 10);
+ s = endp;
+ }
if (*s != '(' || s[1] != '%')
break;
if (*s == ',')
{
+ char *endp;
+
++s;
if (*s == '+')
++s;
size_minus = 1;
}
- size = strtol (s, (char **) &s, 10);
+ size = strtol (s, &endp, 10);
+ s = endp;
if (*s != ')')
break;