convesion functions, look in base classes to.
(Removes a FIXME).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83472
91177308-0d34-0410-b5e6-
96231b3b80d8
}
CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(TyRec->getDecl());
- // FIXME: Visit conversion functions in the base classes, too.
OverloadedFunctionDecl *Conversions
- = ClassDecl->getConversionFunctions();
+ = ClassDecl->getVisibleConversionFunctions();
for (OverloadedFunctionDecl::function_iterator Func
= Conversions->function_begin();
Func != Conversions->function_end(); ++Func) {
void foo(C c, B b, int A::* pmf) {
- // FIXME. Bug or correct? gcc accepts it. It requires derived-to-base followed by user defined conversion to work.
- int j = c->*pmf; // expected-error {{left hand operand to ->* must be a pointer to class compatible with the right hand operand, but is 'struct C'}}
+ int j = c->*pmf;
int i = b->*pmf;
}