const CXXMethodDecl *MD = cast<CXXMethodDecl>(ME->getMemberDecl());
const FunctionProtoType *FPT = MD->getType()->getAsFunctionProtoType();
+
+ // FIXME: It isn't just virtual as written, but all virtual functions.
+ if (MD->isVirtualAsWritten()) {
+ ErrorUnsupported(CE, "virtual dispatch");
+ }
+
const llvm::Type *Ty =
CGM.getTypes().GetFunctionType(CGM.getTypes().getFunctionInfo(MD),
FPT->isVariadic());
void CodeGenFunction::EmitCtorPrologue(const CXXConstructorDecl *CD) {
const CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(CD->getDeclContext());
assert(!ClassDecl->isPolymorphic()
- && "FIXME. virtual base initialization unsupported");
+ && "FIXME: virtual table initialization unsupported");
+ assert(ClassDecl->getNumVBases() == 0
+ && "FIXME: virtual base initialization unsupported");
for (CXXConstructorDecl::init_const_iterator B = CD->init_begin(),
E = CD->init_end();