Commit 7e872b90 by Jakub Jelinek Committed by Jakub Jelinek

re PR rtl-optimization/49912 (ICE from -freorder-blocks-and-partition : verify_flow_info failed)

	PR rtl-optimization/49912
	* cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
	when counting n_branch.

	* g++.dg/other/pr49912.C: New test.

From-SVN: r181743
parent a1c63c5f
2011-11-26 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/49912
* cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
when counting n_branch.
2011-11-26 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
......@@ -1875,7 +1875,8 @@ rtl_verify_flow_info_1 (void)
| EDGE_CAN_FALLTHRU
| EDGE_IRREDUCIBLE_LOOP
| EDGE_LOOP_EXIT
| EDGE_CROSSING)) == 0)
| EDGE_CROSSING
| EDGE_PRESERVE)) == 0)
n_branch++;
if (e->flags & EDGE_ABNORMAL_CALL)
......
2011-11-26 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/49912
* g++.dg/other/pr49912.C: New test.
2011-11-26 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/vect/fast-math-vect-call-2.c: Require vect_double
......
// PR rtl-optimization/49912
// { dg-do compile }
// { dg-require-effective-target freorder }
// { dg-options "-O -freorder-blocks-and-partition" }
int foo (int *);
struct S
{
int *m1 ();
S (int);
~S () { foo (m1 ()); }
};
template <int>
struct V
{
S *v1;
void m2 (const S &);
S *base ();
};
template <int N>
void V<N>::m2 (const S &x)
{
S a = x;
S *l = base ();
while (l)
*v1 = *--l;
}
V<0> v;
void
foo ()
{
v.m2 (0);
}
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