summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ExprCXX.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-06-19 21:48:43 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-06-19 21:48:43 +0000
commite1c0ae6fda87373a954cf483dec638c0115d4fb1 (patch)
tree6028cf840f6a9a32647f2d25312dd43ed06e33e2 /clang/lib/AST/ExprCXX.cpp
parent77a0cfb19aeac98e3db932ed715e2f942085685b (diff)
downloadbcm5719-llvm-e1c0ae6fda87373a954cf483dec638c0115d4fb1.tar.gz
bcm5719-llvm-e1c0ae6fda87373a954cf483dec638c0115d4fb1.zip
Revert r158700 and dependent patches r158716, r158717, and r158731.
The original r158700 caused crashes in the gcc test suite, g++.abi/vtable3a.C among others. It also caused failures in the libc++ test suite. llvm-svn: 158749
Diffstat (limited to 'clang/lib/AST/ExprCXX.cpp')
-rw-r--r--clang/lib/AST/ExprCXX.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp
index 9aac837eb7e..e4545c152f1 100644
--- a/clang/lib/AST/ExprCXX.cpp
+++ b/clang/lib/AST/ExprCXX.cpp
@@ -556,6 +556,9 @@ bool CXXDynamicCastExpr::isAlwaysNull() const
const CXXRecordDecl *SrcRD =
cast<CXXRecordDecl>(SrcType->castAs<RecordType>()->getDecl());
+ if (!SrcRD->hasAttr<FinalAttr>())
+ return false;
+
const CXXRecordDecl *DestRD =
cast<CXXRecordDecl>(DestType->castAs<RecordType>()->getDecl());
OpenPOWER on IntegriCloud