/* { dg-do compile } */ | |
/* { dg-require-visibility "" } */ | |
typedef enum {} UErrorCode; | |
class A { | |
public: | |
virtual A &m_fn1(A &, const A &, UErrorCode &) const; | |
void m_fn2(); | |
A(); | |
A(int); | |
}; | |
class __attribute__((visibility("hidden"))) B : public A { | |
public: | |
B(A &p1) : norm2(p1), set(0) {} | |
A &m_fn1(A &, const A &, UErrorCode &) const; | |
A &norm2; | |
const int &set; | |
}; | |
UErrorCode a; | |
A c; | |
void fn1(A *p1) { | |
A b; | |
p1->m_fn1(b, 0, a).m_fn2(); | |
} | |
void fn2() { | |
B d(c); | |
fn1(&d); | |
} |