summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-01-24 22:51:26 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-01-24 22:51:26 +0000
commit946b7b5bc80a5c330e41cca650a82bc21a638a02 (patch)
tree77a5cec6e7a9995f72729bfc8e0c68959f2bdabd /clang
parent78536ae5b5899a3c9c12cba0b305ba73d7ff5164 (diff)
downloadbcm5719-llvm-946b7b5bc80a5c330e41cca650a82bc21a638a02.tar.gz
bcm5719-llvm-946b7b5bc80a5c330e41cca650a82bc21a638a02.zip
Switch PerformImplicitConversion over to use DefaultLvalueConversion for lvalue-to-rvalue conversion.
llvm-svn: 148874
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp8
-rw-r--r--clang/test/Analysis/reference.cpp2
2 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 919ef06957c..1b08aa2159d 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -2324,12 +2324,14 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
// Nothing to do.
break;
- case ICK_Lvalue_To_Rvalue:
+ case ICK_Lvalue_To_Rvalue: {
assert(From->getObjectKind() != OK_ObjCProperty);
FromType = FromType.getUnqualifiedType();
- From = ImplicitCastExpr::Create(Context, FromType, CK_LValueToRValue,
- From, 0, VK_RValue);
+ ExprResult FromRes = DefaultLvalueConversion(From);
+ assert(!FromRes.isInvalid() && "Can't perform deduced conversion?!");
+ From = FromRes.take();
break;
+ }
case ICK_Array_To_Pointer:
FromType = Context.getArrayDecayedType(FromType);
diff --git a/clang/test/Analysis/reference.cpp b/clang/test/Analysis/reference.cpp
index c7912f4f029..5897e682884 100644
--- a/clang/test/Analysis/reference.cpp
+++ b/clang/test/Analysis/reference.cpp
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -analyze -analyzer-checker=core,experimental.core -analyzer-store=region -analyzer-constraints=range -verify %s
+// RUN: %clang_cc1 -analyze -analyzer-checker=core,experimental.core -analyzer-store=region -analyzer-constraints=range -verify -Wno-null-dereference %s
// XFAIL
typedef typeof(sizeof(int)) size_t;
OpenPOWER on IntegriCloud