aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/dwarf2/attribute.c2
-rw-r--r--gdb/dwarf2/attribute.h13
2 files changed, 9 insertions, 6 deletions
diff --git a/gdb/dwarf2/attribute.c b/gdb/dwarf2/attribute.c
index f777c14..3eb32b6 100644
--- a/gdb/dwarf2/attribute.c
+++ b/gdb/dwarf2/attribute.c
@@ -189,7 +189,7 @@ attribute::form_is_unsigned () const
/* See attribute.h. */
bool
-attribute::form_is_signed () const
+attribute::form_is_strictly_signed () const
{
return form == DW_FORM_sdata || form == DW_FORM_implicit_const;
}
diff --git a/gdb/dwarf2/attribute.h b/gdb/dwarf2/attribute.h
index 115d006..6332b39 100644
--- a/gdb/dwarf2/attribute.h
+++ b/gdb/dwarf2/attribute.h
@@ -69,7 +69,7 @@ struct attribute
form. */
LONGEST as_signed () const
{
- gdb_assert (form_is_signed ());
+ gdb_assert (form_is_strictly_signed ());
return u.snd;
}
@@ -97,7 +97,7 @@ struct attribute
{
if (form_is_unsigned ())
return true;
- if (form_is_signed ())
+ if (form_is_strictly_signed ())
return as_signed () >= 0;
return false;
}
@@ -108,7 +108,7 @@ struct attribute
{
if (form_is_unsigned ())
return as_unsigned ();
- if (form_is_signed ())
+ if (form_is_strictly_signed ())
return (ULONGEST)as_signed ();
gdb_assert (false);
}
@@ -168,8 +168,11 @@ struct attribute
/* Check if the attribute's form is an unsigned integer form. */
bool form_is_unsigned () const;
- /* Check if the attribute's form is a signed integer form. */
- bool form_is_signed () const;
+ /* Check if the attribute's form is a signed integer form. This
+ only returns true for forms that are strictly signed -- that is,
+ for a context-dependent form like DW_FORM_data1, this returns
+ false. */
+ bool form_is_strictly_signed () const;
/* Check if the attribute's form is a form that requires
"reprocessing". */