blob: ea5701aa151d792595a17802b98c942d4bdd1d5c [file] [log] [blame]
/* { dg-do compile } */
void deallocate(void *);
void *a;
struct C {
virtual void m_fn1();
};
struct D {
C *m_fn2() {
if (a)
__builtin_abort();
} // { dg-warning "control reaches end of non-void function" }
};
D getd();
struct vec_int {
int _M_start;
~vec_int() {
if (_M_start)
deallocate(&_M_start);
}
};
vec_int *b;
struct I {
virtual void m_fn3();
};
void I::m_fn3() {
if (a)
getd().m_fn2()->m_fn1();
b->~vec_int();
}