eugenis added a comment. http://clang.llvm.org/docs/ControlFlowIntegrity.html Basically it says that the cast to __base is done on a memory that does not contain an object of type __base (based on the vptr value). Repository: rL LLVM http://reviews.llvm.org/D16738