Commit 44d974b5 by Olga Golovanevsky Committed by Olga Golovanevsky

ipa-type-escape fix for ada

From-SVN: r123022
parent 604e4ce3
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> 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
* final.c (final_scan_insn): Alter the condition of a * final.c (final_scan_insn): Alter the condition of a
......
...@@ -1239,26 +1239,21 @@ look_for_casts (tree lhs ATTRIBUTE_UNUSED, tree t) ...@@ -1239,26 +1239,21 @@ look_for_casts (tree lhs ATTRIBUTE_UNUSED, tree t)
tree castfromvar = TREE_OPERAND (t, 0); tree castfromvar = TREE_OPERAND (t, 0);
cast = cast | check_cast (TREE_TYPE (t), castfromvar); cast = cast | check_cast (TREE_TYPE (t), castfromvar);
} }
else if (TREE_CODE (t) == COMPONENT_REF else
|| TREE_CODE (t) == INDIRECT_REF while (handled_component_p (t))
|| TREE_CODE (t) == BIT_FIELD_REF) {
{ t = TREE_OPERAND (t, 0);
tree base = get_base_address (t); if (TREE_CODE (t) == VIEW_CONVERT_EXPR)
while (t != base) {
{ /* This may be some part of a component ref.
t = TREE_OPERAND (t, 0); IE it may be a.b.VIEW_CONVERT_EXPR<weird_type>(c).d, AFAIK.
if (TREE_CODE (t) == VIEW_CONVERT_EXPR) castfromref will give you a.b.c, not a. */
{ tree castfromref = TREE_OPERAND (t, 0);
/* This may be some part of a component ref. cast = cast | check_cast (TREE_TYPE (t), castfromref);
IE it may be a.b.VIEW_CONVERT_EXPR<weird_type>(c).d, AFAIK. }
castfromref will give you a.b.c, not a. */ else if (TREE_CODE (t) == COMPONENT_REF)
tree castfromref = TREE_OPERAND (t, 0); get_canon_type (TREE_TYPE (TREE_OPERAND (t, 1)), false, false);
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) if (!cast)
cast = CT_NO_CAST; cast = CT_NO_CAST;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment