Commit e3195c52 by Jan Hubicka Committed by Jan Hubicka

re PR tree-optimization/48929 (ICE: in estimate_size_after_inlining, at…

re PR tree-optimization/48929 (ICE: in estimate_size_after_inlining, at ipa-inline-analysis.c:1961 with -findirect-inlining)

	PR tree-optimize/48929
	* gcc.c-torture/compile/pr48929.c: New testcase.
	* ipa-inline-analysis.c (remap_edge_predicates): Fix handling
	of empty predicate.

From-SVN: r174638
parent 047d33a0
2011-06-04 Jan Hubicka <jh@suse.cz>
PR tree-optimize/48929
* ipa-inline-analysis.c (remap_edge_predicates): Fix handling
of empty predicate.
2011-06-04 Alexandre Oliva <aoliva@redhat.com> 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
PR debug/48333 PR debug/48333
......
...@@ -1949,6 +1949,8 @@ remap_edge_predicates (struct cgraph_node *node, ...@@ -1949,6 +1949,8 @@ remap_edge_predicates (struct cgraph_node *node,
if (!e->inline_failed) if (!e->inline_failed)
remap_edge_predicates (e->callee, info, callee_info, operand_map, remap_edge_predicates (e->callee, info, callee_info, operand_map,
possible_truths, toplev_predicate); possible_truths, toplev_predicate);
else
edge_set_predicate (e, toplev_predicate);
} }
for (e = node->indirect_calls; e; e = e->next_callee) for (e = node->indirect_calls; e; e = e->next_callee)
{ {
...@@ -1969,6 +1971,8 @@ remap_edge_predicates (struct cgraph_node *node, ...@@ -1969,6 +1971,8 @@ remap_edge_predicates (struct cgraph_node *node,
e->frequency = 0; e->frequency = 0;
} }
} }
else
edge_set_predicate (e, toplev_predicate);
} }
} }
......
2011-06-04 Jan Hubicka <jh@suse.cz>
PR tree-optimize/48929
* gcc.c-torture/compile/pr48929.c: New testcase.
2011-06-04 Jakub Jelinek <jakub@redhat.com> 2011-06-04 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/guality/rotatetest.c (f5, f6): Fix up pastos. * gcc.dg/guality/rotatetest.c (f5, f6): Fix up pastos.
......
/*{ dg-options "-O -findirect-inlining" }*/
void bar ();
static void
f4 (double di, double d, double *dd)
{
if (d == 0 && di == 0)
*dd = 0;
bar ();
}
static inline void
f3 (int i, double d)
{
double di = i;
double dd;
f4 (di, d, &dd);
}
static inline void
f2 (int i, double d)
{
if (d < 0)
f3 (i, d);
}
void
f1 ()
{
f2 (0, 1);
}
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