+2008-08-16 Paul N. Hilfinger <hilfinger@adacore.com>
+
+ * ada-lang.c (pos_atr): Account for the possibility that the
+ argument may be a reference.
+
2008-08-16 Paul N. Hilfinger <hilfingr@adacore.com>
* xcoffread.c (scan_xcoff_symtab): Do not include global symbols
static LONGEST
pos_atr (struct value *arg)
{
- struct type *type = value_type (arg);
+ struct value *val = coerce_ref (arg);
+ struct type *type = value_type (val);
if (!discrete_type_p (type))
error (_("'POS only defined on discrete types"));
if (TYPE_CODE (type) == TYPE_CODE_ENUM)
{
int i;
- LONGEST v = value_as_long (arg);
+ LONGEST v = value_as_long (val);
for (i = 0; i < TYPE_NFIELDS (type); i += 1)
{
error (_("enumeration value is invalid: can't find 'POS"));
}
else
- return value_as_long (arg);
+ return value_as_long (val);
}
static struct value *