Hi, Richi pointed out to me that there are unresolved tests in devirt-*.C. This is fixed by this patch (one template needs update for missing unreachable function removal)
Will commit it later tonight or tomorrow. Honza * g++.dg/ipa/devirt-42.C: Fix template. * g++.dg/ipa/devirt-46.C: Fix template. * g++.dg/ipa/devirt-47.C: Fix template. Index: testsuite/g++.dg/ipa/devirt-42.C =================================================================== --- testsuite/g++.dg/ipa/devirt-42.C (revision 216436) +++ testsuite/g++.dg/ipa/devirt-42.C (working copy) @@ -30,9 +30,10 @@ main() /* { dg-final { scan-ipa-dump-times "First type is base of second" 3 "inline" } } */ /* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target" 2 "inline" } } */ -/* Verify that speculation is optimized by late optimizers. */ -/* { dg-final { scan-ipa-dump-times "return 2" 2 "optimized" } } */ -/* { dg-final { scan-ipa-dump-not "OBJ_TYPE_REF" "optimized" } } */ +/* Verify that speculation is optimized by late optimizers; Eventually we want to remove the + virtual functions but at the moment this does not happen. */ +/* { dg-final { scan-tree-dump-times "return 2" 3 "optimized" } } */ +/* { dg-final { scan-tree-dump-not "OBJ_TYPE_REF" "optimized" } } */ /* { dg-final { cleanup-ipa-dump "inline" } } */ -/* { dg-final { cleanup-ipa-dump "optimized" } } */ +/* { dg-final { cleanup-tree-dump "optimized" } } */ Index: testsuite/g++.dg/ipa/devirt-46.C =================================================================== --- testsuite/g++.dg/ipa/devirt-46.C (revision 216436) +++ testsuite/g++.dg/ipa/devirt-46.C (working copy) @@ -21,7 +21,7 @@ m() } /* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target\[^\\n\]*B::foo" 1 "inline" } } */ -/* { dg-final { scan-ipa-dump-not "OBJ_TYPE_REF" "optimized" } } */ -/* { dg-final { scan-ipa-dump-not "abort" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "OBJ_TYPE_REF" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "abort" "optimized" } } */ /* { dg-final { cleanup-ipa-dump "inline" } } */ -/* { dg-final { cleanup-ipa-dump "optimized" } } */ +/* { dg-final { cleanup-tree-dump "optimized" } } */ Index: testsuite/g++.dg/ipa/devirt-47.C =================================================================== --- testsuite/g++.dg/ipa/devirt-47.C (revision 216436) +++ testsuite/g++.dg/ipa/devirt-47.C (working copy) @@ -24,8 +24,8 @@ m() } /* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target\[^\\n\]*C::_ZTh" 1 "inline" } } */ -/* { dg-final { scan-ipa-dump-not "OBJ_TYPE_REF" "optimized" } } */ +/* { dg-final { scan-tree-dump-not "OBJ_TYPE_REF" "optimized" } } */ /* FIXME: We ought to inline thunk. */ -/* { dg-final { scan-ipa-dump "C::_ZThn" "optimized" } } */ +/* { dg-final { scan-tree-dump "C::_ZThn" "optimized" } } */ /* { dg-final { cleanup-ipa-dump "inline" } } */ -/* { dg-final { cleanup-ipa-dump "optimized" } } */ +/* { dg-final { cleanup-tree-dump "optimized" } } */