summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprCXX.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-12-16 06:31:17 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-12-16 06:31:17 +0000
commite7029bce82c9048aa7c8730bda838d3d4a10c837 (patch)
tree96124e60f7ad751f2cf99d2d9b86bddc7f008b8b /clang/lib/Sema/SemaExprCXX.cpp
parent0f479da711772d7f87b2622fca002809d28a822e (diff)
downloadbcm5719-llvm-e7029bce82c9048aa7c8730bda838d3d4a10c837.tar.gz
bcm5719-llvm-e7029bce82c9048aa7c8730bda838d3d4a10c837.zip
Sema: Don't crash converting to bool from _Atomic
Turning our _Atomic L-value into an R-value removes its _Atomic-ness. However, we didn't update our 'FromType' which made ScalarTypeToBooleanCastKind think we were trying to pass it a non-scalar. This fixes PR21836. llvm-svn: 224322
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 1f9c1ea73cd..2227721f70e 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -2754,10 +2754,10 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
case ICK_Lvalue_To_Rvalue: {
assert(From->getObjectKind() != OK_ObjCProperty);
- FromType = FromType.getUnqualifiedType();
ExprResult FromRes = DefaultLvalueConversion(From);
assert(!FromRes.isInvalid() && "Can't perform deduced conversion?!");
From = FromRes.get();
+ FromType = From->getType();
break;
}
OpenPOWER on IntegriCloud