forked from Imagelibrary/binutils-gdb
Remove long_long_align_bit gdbarch attribute
This removes the long_long_align_bit gdbarch attribute in favor of
type_align. This uncovered two possible issues.
First, arc-tdep.c claimed that long long alignment was 32 bits, but as
discussed on the list, ARC has a maximum alignment of 32 bits, so I've
added an arc_type_align function to account for this.
Second, jit.c, the sole user of long_long_align_bit, was confusing
"long long" with uint64_t. The relevant structure is defined in the
JIT API part of the manual as:
struct jit_code_entry
{
struct jit_code_entry *next_entry;
struct jit_code_entry *prev_entry;
const char *symfile_addr;
uint64_t symfile_size;
};
I've changed this code to use uint64_t.
2018-04-30 Tom Tromey <tom@tromey.com>
* jit.c (jit_read_code_entry): Use type_align.
* i386-tdep.c (i386_gdbarch_init): Don't call
set_gdbarch_long_long_align_bit.
* gdbarch.sh: Remove long_long_align_bit.
* gdbarch.c, gdbarch.h: Rebuild.
* arc-tdep.c (arc_type_align): New function.
(arc_gdbarch_init): Use arc_type_align. Don't call
set_gdbarch_long_long_align_bit.
This commit is contained in:
@@ -147,12 +147,6 @@ extern void set_gdbarch_long_bit (struct gdbarch *gdbarch, int long_bit);
|
||||
extern int gdbarch_long_long_bit (struct gdbarch *gdbarch);
|
||||
extern void set_gdbarch_long_long_bit (struct gdbarch *gdbarch, int long_long_bit);
|
||||
|
||||
/* Alignment of a long long or unsigned long long for the target
|
||||
machine. */
|
||||
|
||||
extern int gdbarch_long_long_align_bit (struct gdbarch *gdbarch);
|
||||
extern void set_gdbarch_long_long_align_bit (struct gdbarch *gdbarch, int long_long_align_bit);
|
||||
|
||||
/* The ABI default bit-size and format for "half", "float", "double", and
|
||||
"long double". These bit/format pairs should eventually be combined
|
||||
into a single object. For the moment, just initialize them as a pair.
|
||||
|
||||
Reference in New Issue
Block a user