diff options
author | Timur Iskhodzhanov <timurrrr@google.com> | 2013-10-02 16:03:16 +0000 |
---|---|---|
committer | Timur Iskhodzhanov <timurrrr@google.com> | 2013-10-02 16:03:16 +0000 |
commit | 40c585a5687adaf4971e1375a25bcd4ba47dd112 (patch) | |
tree | ce6625329b0cdbba5d325f47b33cb0518d54d881 /clang/lib/CodeGen/CGDeclCXX.cpp | |
parent | 6df39438af9714ee649ac80355fc96edf59f53bc (diff) | |
download | bcm5719-llvm-40c585a5687adaf4971e1375a25bcd4ba47dd112.tar.gz bcm5719-llvm-40c585a5687adaf4971e1375a25bcd4ba47dd112.zip |
Fix crashes when creating global instances of polymorphic classes without fields
Reviewed at http://llvm-reviews.chandlerc.com/D1795
llvm-svn: 191839
Diffstat (limited to 'clang/lib/CodeGen/CGDeclCXX.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGDeclCXX.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp index e3249aa232f..7bdb9eb0a4a 100644 --- a/clang/lib/CodeGen/CGDeclCXX.cpp +++ b/clang/lib/CodeGen/CGDeclCXX.cpp @@ -96,7 +96,8 @@ static void EmitDeclDestroy(CodeGenFunction &CGF, const VarDecl &D, CXXDestructorDecl *dtor = record->getDestructor(); function = CGM.GetAddrOfCXXDestructor(dtor, Dtor_Complete); - argument = addr; + argument = llvm::ConstantExpr::getBitCast( + addr, CGF.getTypes().ConvertType(type)->getPointerTo()); // Otherwise, the standard logic requires a helper function. } else { |