Hi, devirt-11.C is somewhat fragile testcase that originally was testing a specific series of events in inliner that are no longer happening anyway. It tests for a specific number of devirutalization that depends on several aspects. It seems more practical to relax this check, because it is kind of pointless.
Regtested and commited to gcc-4.9 branch. Honza Index: g++.dg/ipa/devirt-11.C =================================================================== --- g++.dg/ipa/devirt-11.C (revision 210672) +++ g++.dg/ipa/devirt-11.C (working copy) @@ -45,5 +45,5 @@ bar () /* While inlining function called once we should devirtualize a new call to fn2 and two to fn3. While doing so the new symbol for fn2 needs to be introduced. */ -/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target" 1 "inline" } } */ +/* { dg-final { scan-ipa-dump "Discovered a virtual call to a known target" "inline" } } */ /* { dg-final { cleanup-ipa-dump "inline" } } */ Index: ChangeLog =================================================================== --- ChangeLog (revision 210672) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2014-05-18 Jan Hubicka <hubi...@ucw.cz> + + PR middle-end/58094 + * g++.dg/ipa/devirt-11.C: Be lax about number of devirtualizations. + 2014-05-18 Eric Botcazou <ebotca...@adacore.com> * gnat.dg/enum3.adb: New test.