/* Verify that callgraph construction keeps FOO for possible devirtualization and removes BAR. */ /* { dg-do compile } */ /* { dg-options "-O2 -fdump-ipa-visibility -fdevirtualize" } */ extern "C" void abort (void); class A { public: virtual int foo (void) { return 4; } virtual int bar (void) { return 5; } }; int t(class A *a) { return a->foo(); } /* { dg-final { scan-ipa-dump "A::foo" "visibility" } } */ /* { dg-final { scan-ipa-dump-not "A::bar" "visibility" } } */ /* { dg-final { cleanup-ipa-dump "visibility" } } */