ipa-type-escape fix for ada
From-SVN: r123022
This commit is contained in:
parent
604e4ce3fe
commit
44d974b5d2
2 changed files with 20 additions and 20 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
|
||||
|
||||
* ipa-type-escape.c (look_for_casts) : Revert code to use
|
||||
handled_component_p due to ada test a-numaux.adb.
|
||||
|
||||
2007-03-17 Kazu Hirata <kazu@codesourcery.com>
|
||||
|
||||
* final.c (final_scan_insn): Alter the condition of a
|
||||
|
|
|
@ -1239,26 +1239,21 @@ look_for_casts (tree lhs ATTRIBUTE_UNUSED, tree t)
|
|||
tree castfromvar = TREE_OPERAND (t, 0);
|
||||
cast = cast | check_cast (TREE_TYPE (t), castfromvar);
|
||||
}
|
||||
else if (TREE_CODE (t) == COMPONENT_REF
|
||||
|| TREE_CODE (t) == INDIRECT_REF
|
||||
|| TREE_CODE (t) == BIT_FIELD_REF)
|
||||
{
|
||||
tree base = get_base_address (t);
|
||||
while (t != base)
|
||||
{
|
||||
t = TREE_OPERAND (t, 0);
|
||||
if (TREE_CODE (t) == VIEW_CONVERT_EXPR)
|
||||
{
|
||||
/* This may be some part of a component ref.
|
||||
IE it may be a.b.VIEW_CONVERT_EXPR<weird_type>(c).d, AFAIK.
|
||||
castfromref will give you a.b.c, not a. */
|
||||
tree castfromref = TREE_OPERAND (t, 0);
|
||||
cast = cast | check_cast (TREE_TYPE (t), castfromref);
|
||||
}
|
||||
else if (TREE_CODE (t) == COMPONENT_REF)
|
||||
get_canon_type (TREE_TYPE (TREE_OPERAND (t, 1)), false, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
while (handled_component_p (t))
|
||||
{
|
||||
t = TREE_OPERAND (t, 0);
|
||||
if (TREE_CODE (t) == VIEW_CONVERT_EXPR)
|
||||
{
|
||||
/* This may be some part of a component ref.
|
||||
IE it may be a.b.VIEW_CONVERT_EXPR<weird_type>(c).d, AFAIK.
|
||||
castfromref will give you a.b.c, not a. */
|
||||
tree castfromref = TREE_OPERAND (t, 0);
|
||||
cast = cast | check_cast (TREE_TYPE (t), castfromref);
|
||||
}
|
||||
else if (TREE_CODE (t) == COMPONENT_REF)
|
||||
get_canon_type (TREE_TYPE (TREE_OPERAND (t, 1)), false, false);
|
||||
}
|
||||
|
||||
if (!cast)
|
||||
cast = CT_NO_CAST;
|
||||
|
|
Loading…
Add table
Reference in a new issue