diff options
author | Davide Italiano <davide@freebsd.org> | 2015-06-21 16:33:50 +0000 |
---|---|---|
committer | Davide Italiano <davide@freebsd.org> | 2015-06-21 16:33:50 +0000 |
commit | 8c93d5eddc7524d17767b5546155d5be95c3696d (patch) | |
tree | 61ccdefbda654785b87e8328796b67509e23e293 /clang/lib/CodeGen | |
parent | fd704fe8956828c668a74bd798ad9c8042c592c2 (diff) | |
download | bcm5719-llvm-8c93d5eddc7524d17767b5546155d5be95c3696d.tar.gz bcm5719-llvm-8c93d5eddc7524d17767b5546155d5be95c3696d.zip |
[Codegen] Don't crash if destructor is not accessible.
Testcase provided, in the PR, by Christian Shelton and
reduced by David Majnemer.
PR: 23584
Differential Revision: http://reviews.llvm.org/D10508
Reviewed by: rnk
llvm-svn: 240242
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGClass.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGClass.cpp b/clang/lib/CodeGen/CGClass.cpp index 1d2b7875d8f..4d6a4e288dd 100644 --- a/clang/lib/CodeGen/CGClass.cpp +++ b/clang/lib/CodeGen/CGClass.cpp @@ -1297,6 +1297,10 @@ HasTrivialDestructorBody(ASTContext &Context, if (BaseClassDecl->hasTrivialDestructor()) return true; + // Give up if the destructor is not accessible. + if (!BaseClassDecl->getDestructor()) + return false; + if (!BaseClassDecl->getDestructor()->hasTrivialBody()) return false; |