[cfe-commits] r77626 - /cfe/trunk/lib/CodeGen/CGCXX.cpp

Mike Stump mrs at apple.com
Thu Jul 30 14:47:45 PDT 2009


Author: mrs
Date: Thu Jul 30 16:47:44 2009
New Revision: 77626

URL: http://llvm.org/viewvc/llvm-project?rev=77626&view=rev
Log:
Note some other limitations.

Modified:
    cfe/trunk/lib/CodeGen/CGCXX.cpp

Modified: cfe/trunk/lib/CodeGen/CGCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCXX.cpp?rev=77626&r1=77625&r2=77626&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGCXX.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGCXX.cpp Thu Jul 30 16:47:44 2009
@@ -106,6 +106,12 @@
   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());
@@ -490,7 +496,9 @@
 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();





More information about the cfe-commits mailing list