diff options
author | Tom Tromey <tromey@adacore.com> | 2025-02-06 10:56:54 -0700 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2025-03-18 12:40:58 -0600 |
commit | dfcc760bcc714eb22110aa6fa2380053ccc688c5 (patch) | |
tree | fb86776b6b00e81bad0f2acf5c7d5b85772685f0 | |
parent | 75de4e21025b01f8167f3acd1e9a010f75ffd631 (diff) | |
download | binutils-dfcc760bcc714eb22110aa6fa2380053ccc688c5.zip binutils-dfcc760bcc714eb22110aa6fa2380053ccc688c5.tar.gz binutils-dfcc760bcc714eb22110aa6fa2380053ccc688c5.tar.bz2 |
Assume DW_AT_alignment is unsigned
This changes get_alignment to assume that DW_AT_alignment refers to an
unsigned value.
Approved-By: Simon Marchi <simon.marchi@efficios.com>
-rw-r--r-- | gdb/dwarf2/read.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index e5744eb..6d173a5 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -11131,16 +11131,11 @@ get_alignment (struct dwarf2_cu *cu, struct die_info *die) return 0; } - LONGEST val = attr->constant_value (0); - if (val < 0) - { - complaint (_("DW_AT_alignment value must not be negative" - " - DIE at %s [in module %s]"), - sect_offset_str (die->sect_off), - objfile_name (cu->per_objfile->objfile)); - return 0; - } - ULONGEST align = val; + std::optional<ULONGEST> val = attr->unsigned_constant (); + if (!val.has_value ()) + return 0; + + ULONGEST align = *val; if (align == 0) { |