From 4e8ca4fa14257bae769b4bdad448acf861a83a6a Mon Sep 17 00:00:00 2001 From: John McCall Date: Mon, 2 Jul 2012 23:58:38 +0000 Subject: Significantly simplify CGExprAgg's logic about ignored results: if we want to ignore a result, the Dest will be null. Otherwise, we must copy into it. This means we need to ensure a slot when loading from a volatile l-value. With all that in place, fix a bug with chained assignments into __block variables of aggregate type where we were losing insight into the actual source of the value during the second assignment. llvm-svn: 159630 --- clang/lib/CodeGen/CGValue.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'clang/lib/CodeGen/CGValue.h') diff --git a/clang/lib/CodeGen/CGValue.h b/clang/lib/CodeGen/CGValue.h index dd9208f9138..a46f313f1f7 100644 --- a/clang/lib/CodeGen/CGValue.h +++ b/clang/lib/CodeGen/CGValue.h @@ -389,7 +389,8 @@ public: return AV; } - static AggValueSlot forLValue(LValue LV, IsDestructed_t isDestructed, + static AggValueSlot forLValue(const LValue &LV, + IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, IsZeroed_t isZeroed = IsNotZeroed) { -- cgit v1.2.3