[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