[cfe-commits] r91748 - in /cfe/trunk: include/clang/AST/RecordLayout.h test/CodeGenCXX/virtual-function-calls.cpp

Anders Carlsson andersca at mac.com
Fri Dec 18 18:13:42 PST 2009


Author: andersca
Date: Fri Dec 18 20:13:41 2009
New Revision: 91748

URL: http://llvm.org/viewvc/llvm-project?rev=91748&view=rev
Log:
Correctly initialize the PrimaryBaseInfo if a base is null. Fixes PR5832.

Modified:
    cfe/trunk/include/clang/AST/RecordLayout.h
    cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp

Modified: cfe/trunk/include/clang/AST/RecordLayout.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/RecordLayout.h?rev=91748&r1=91747&r2=91748&view=diff

==============================================================================
--- cfe/trunk/include/clang/AST/RecordLayout.h (original)
+++ cfe/trunk/include/clang/AST/RecordLayout.h Fri Dec 18 20:13:41 2009
@@ -53,7 +53,7 @@
     PrimaryBaseInfo() {}
 
     PrimaryBaseInfo(const CXXRecordDecl *Base, bool IsVirtual)
-      : Value(Base, IsVirtual) {}
+      : Value(Base, Base && IsVirtual) {}
 
     /// Value - Points to the primary base. The single-bit value
     /// will be non-zero when the primary base is virtual.

Modified: cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp?rev=91748&r1=91747&r2=91748&view=diff

==============================================================================
--- cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp Fri Dec 18 20:13:41 2009
@@ -9,3 +9,11 @@
   // CHECK: call void %
   a->f('c');
 }
+
+struct B : virtual A { 
+  virtual void f();
+};
+
+void f(B * b) {
+  b->f();
+}
\ No newline at end of file





More information about the cfe-commits mailing list