Fix indentation level in ada-lang.c::ada_evaluate_subexp.
I just happen to notice that a lexical block was missing one indentation level. gdb/ChangeLog: * ada-lang.c (ada_evaluate_subexp) <OP_VAR_VALUE>: Fix identation of lexical block.
This commit is contained in:
parent
cb8e01c6bb
commit
0d72a7c318
2 changed files with 46 additions and 41 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2014-08-18 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
|
* ada-lang.c (ada_evaluate_subexp) <OP_VAR_VALUE>: Fix identation
|
||||||
|
of lexical block.
|
||||||
|
|
||||||
2014-08-15 Siva Chandra Reddy <sivachandra@google.com>
|
2014-08-15 Siva Chandra Reddy <sivachandra@google.com>
|
||||||
|
|
||||||
PR c++/17132
|
PR c++/17132
|
||||||
|
|
|
@ -10138,50 +10138,50 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp,
|
||||||
if (ada_is_tagged_type (type, 0)
|
if (ada_is_tagged_type (type, 0)
|
||||||
|| (TYPE_CODE (type) == TYPE_CODE_REF
|
|| (TYPE_CODE (type) == TYPE_CODE_REF
|
||||||
&& ada_is_tagged_type (TYPE_TARGET_TYPE (type), 0)))
|
&& ada_is_tagged_type (TYPE_TARGET_TYPE (type), 0)))
|
||||||
{
|
{
|
||||||
/* Tagged types are a little special in the fact that the real
|
/* Tagged types are a little special in the fact that the real
|
||||||
type is dynamic and can only be determined by inspecting the
|
type is dynamic and can only be determined by inspecting the
|
||||||
object's tag. This means that we need to get the object's
|
object's tag. This means that we need to get the object's
|
||||||
value first (EVAL_NORMAL) and then extract the actual object
|
value first (EVAL_NORMAL) and then extract the actual object
|
||||||
type from its tag.
|
type from its tag.
|
||||||
|
|
||||||
Note that we cannot skip the final step where we extract
|
Note that we cannot skip the final step where we extract
|
||||||
the object type from its tag, because the EVAL_NORMAL phase
|
the object type from its tag, because the EVAL_NORMAL phase
|
||||||
results in dynamic components being resolved into fixed ones.
|
results in dynamic components being resolved into fixed ones.
|
||||||
This can cause problems when trying to print the type
|
This can cause problems when trying to print the type
|
||||||
description of tagged types whose parent has a dynamic size:
|
description of tagged types whose parent has a dynamic size:
|
||||||
We use the type name of the "_parent" component in order
|
We use the type name of the "_parent" component in order
|
||||||
to print the name of the ancestor type in the type description.
|
to print the name of the ancestor type in the type description.
|
||||||
If that component had a dynamic size, the resolution into
|
If that component had a dynamic size, the resolution into
|
||||||
a fixed type would result in the loss of that type name,
|
a fixed type would result in the loss of that type name,
|
||||||
thus preventing us from printing the name of the ancestor
|
thus preventing us from printing the name of the ancestor
|
||||||
type in the type description. */
|
type in the type description. */
|
||||||
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, EVAL_NORMAL);
|
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, EVAL_NORMAL);
|
||||||
|
|
||||||
if (TYPE_CODE (type) != TYPE_CODE_REF)
|
if (TYPE_CODE (type) != TYPE_CODE_REF)
|
||||||
{
|
{
|
||||||
struct type *actual_type;
|
struct type *actual_type;
|
||||||
|
|
||||||
actual_type = type_from_tag (ada_value_tag (arg1));
|
actual_type = type_from_tag (ada_value_tag (arg1));
|
||||||
if (actual_type == NULL)
|
if (actual_type == NULL)
|
||||||
/* If, for some reason, we were unable to determine
|
/* If, for some reason, we were unable to determine
|
||||||
the actual type from the tag, then use the static
|
the actual type from the tag, then use the static
|
||||||
approximation that we just computed as a fallback.
|
approximation that we just computed as a fallback.
|
||||||
This can happen if the debugging information is
|
This can happen if the debugging information is
|
||||||
incomplete, for instance. */
|
incomplete, for instance. */
|
||||||
actual_type = type;
|
actual_type = type;
|
||||||
return value_zero (actual_type, not_lval);
|
return value_zero (actual_type, not_lval);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* In the case of a ref, ada_coerce_ref takes care
|
/* In the case of a ref, ada_coerce_ref takes care
|
||||||
of determining the actual type. But the evaluation
|
of determining the actual type. But the evaluation
|
||||||
should return a ref as it should be valid to ask
|
should return a ref as it should be valid to ask
|
||||||
for its address; so rebuild a ref after coerce. */
|
for its address; so rebuild a ref after coerce. */
|
||||||
arg1 = ada_coerce_ref (arg1);
|
arg1 = ada_coerce_ref (arg1);
|
||||||
return value_ref (arg1);
|
return value_ref (arg1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*pos += 4;
|
*pos += 4;
|
||||||
return value_zero (to_static_fixed_type (type), not_lval);
|
return value_zero (to_static_fixed_type (type), not_lval);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue