2 /* { dg-options "-O3 -fno-partial-inlining -fdump-ipa-cp -fno-devirtualize-speculatively" } */
3 /* Main purpose is to verify that we do not produce wrong devirtualization to
4 C::m_fn1. We currently devirtualize to B::m_fn1, so check that. */
11 class MultiTermDocs : public virtual B {
15 virtual B *m_fn1(int *) {}
16 virtual inline ~MultiTermDocs();
17 inline void wrap(void)
30 class C : MultiTermDocs {
33 MultiTermDocs::~MultiTermDocs() {
35 if (&readerTermDocs) {
37 for (unsigned i = 0; i < subReaders.length; i++)
42 B *C::m_fn1(int *) { abort (); }
48 /* { dg-final { scan-ipa-dump "Discovered a virtual call to" "cp" } } */
49 /* { dg-final { cleanup-ipa-dump "cp" } } */