From cd940a1e13e588a43973cd7ae33b5c33a3062739 Mon Sep 17 00:00:00 2001 From: John McCall Date: Mon, 6 Dec 2010 06:10:02 +0000 Subject: __block variables require us to evaluate the RHS of an assignment before the LHS, or else the pointer might be invalid. This is kindof dumb, but go ahead and make sure we're doing that for l-value scalar assignment, which fixes a miscompile of obj-c++.dg/block-seq.mm. Leave a FIXME for how to solve this problem for agg __blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120992 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGenCXX/volatile-1.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/CodeGenCXX/volatile-1.cpp') diff --git a/test/CodeGenCXX/volatile-1.cpp b/test/CodeGenCXX/volatile-1.cpp index ba43471abf..0569150101 100644 --- a/test/CodeGenCXX/volatile-1.cpp +++ b/test/CodeGenCXX/volatile-1.cpp @@ -346,9 +346,9 @@ void test() { // CHECK-NEXT: volatile store {{.*}}, [[INT]]* @j (j=k,i)=i; + // CHECK-NEXT: volatile load [[INT]]* @i // CHECK-NEXT: volatile load [[INT]]* @k // CHECK-NEXT: volatile store {{.*}}, [[INT]]* @j - // CHECK-NEXT: volatile load [[INT]]* @i // CHECK-NEXT: volatile store {{.*}}, [[INT]]* @i // CHECK-NEXT: ret void -- cgit v1.2.1