[cfe-commits] r88676 - in /cfe/trunk: lib/CodeGen/CGCXXClass.cpp test/CodeGenCXX/virt.cpp

Mike Stump mrs at apple.com
Fri Nov 13 10:53:36 PST 2009


Author: mrs
Date: Fri Nov 13 12:53:35 2009
New Revision: 88676

URL: http://llvm.org/viewvc/llvm-project?rev=88676&view=rev
Log:
This falls into the category of stupid pet tricks.  I hate to do this,
but this is necessary to continue work on virtual vtables.  We don't
want to penalize virtual table building testcases, just because
complex virtual conversions don't yet work.

Modified:
    cfe/trunk/lib/CodeGen/CGCXXClass.cpp
    cfe/trunk/test/CodeGenCXX/virt.cpp

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

==============================================================================
--- cfe/trunk/lib/CodeGen/CGCXXClass.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGCXXClass.cpp Fri Nov 13 12:53:35 2009
@@ -31,6 +31,9 @@
     const ASTRecordLayout &Layout = Context.getASTRecordLayout(Element.Class);
     
     const CXXBaseSpecifier *BS = Element.Base;
+    // FIXME: enable test3 from virt.cc to not abort.
+    if (BS->isVirtual())
+      return 0;
     assert(!BS->isVirtual() && "Should not see virtual bases here!");
     
     const CXXRecordDecl *Base = 

Modified: cfe/trunk/test/CodeGenCXX/virt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/virt.cpp?rev=88676&r1=88675&r2=88676&view=diff

==============================================================================
--- cfe/trunk/test/CodeGenCXX/virt.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/virt.cpp Fri Nov 13 12:53:35 2009
@@ -4,8 +4,6 @@
 // RUN: clang-cc -triple x86_64-apple-darwin -std=c++0x -emit-llvm %s -o %t-64.ll
 // RUN: FileCheck -check-prefix LPLL64 --input-file=%t-64.ll %s
 
-// XFAIL: *
-
 struct B {
   virtual void bar1();
   virtual void bar2();
@@ -709,7 +707,7 @@
 // CHECK-LPLL64:  ret %class.test8_D* %10
 // CHECK-LPLL64:}
 
-// CHECK-LPLL64:define weak %class.test8_D* @_ZTch0_v16_n32_N8test16_D4foo1Ev36(%class.test8_D*) {
+// CHECK-LPLL64:define weak %class.test8_D* @_ZTch0_v16_n32_N8test16_D4foo1Ev(%class.test8_D*) {
 // CHECK-LPLL64:entry:
 // CHECK-LPLL64:  %retval = alloca %class.test8_D*
 // CHECK-LPLL64:  %.addr = alloca %class.test8_D*
@@ -912,10 +910,10 @@
 
 
 class test21_V {
-  virtual void foo();
+  virtual void foo() { }
 };
 class test21_V1 {
-  virtual void foo();
+  virtual void foo() { }
 };
 class test21_B : virtual test21_V {
 };





More information about the cfe-commits mailing list