summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprCXX.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-06-12 17:55:44 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-06-12 17:55:44 +0000
commitfc22e4774b786a11f8cfc0c6d724a9386f80e064 (patch)
treedaf99abbfc55ffe8c88063f04d4f22a3dfc82c61 /clang/lib/Sema/SemaExprCXX.cpp
parent255d117d43b1fffe25f892e14e35045ccaf78e09 (diff)
downloadbcm5719-llvm-fc22e4774b786a11f8cfc0c6d724a9386f80e064.tar.gz
bcm5719-llvm-fc22e4774b786a11f8cfc0c6d724a9386f80e064.zip
[MS ABI] Lock-in the derived memptr rep. for base-to-derived conversions
We would get this right in the case where an explicit cast was formed but not when we were performing an implicit conversion. This fixes PR23828. llvm-svn: 239625
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index ef72097e935..6c839f356fd 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -3290,10 +3290,10 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
// We may not have been able to figure out what this member pointer resolved
// to up until this exact point. Attempt to lock-in it's inheritance model.
- QualType FromType = From->getType();
- if (FromType->isMemberPointerType())
- if (Context.getTargetInfo().getCXXABI().isMicrosoft())
- RequireCompleteType(From->getExprLoc(), FromType, 0);
+ if (Context.getTargetInfo().getCXXABI().isMicrosoft()) {
+ RequireCompleteType(From->getExprLoc(), From->getType(), 0);
+ RequireCompleteType(From->getExprLoc(), ToType, 0);
+ }
From = ImpCastExprToType(From, ToType, Kind, VK_RValue, &BasePath, CCK)
.get();
OpenPOWER on IntegriCloud