Better framework for conditional cleanups; untested as yet.
I'm separately committing this because it incidentally changes some
block orderings and minor IR issues, like using a phi instead of
an unnecessary alloca.
llvm-svn: 124277
diff --git a/clang/test/CodeGenCXX/volatile-1.cpp b/clang/test/CodeGenCXX/volatile-1.cpp
index 0569150..3ae17bd 100644
--- a/clang/test/CodeGenCXX/volatile-1.cpp
+++ b/clang/test/CodeGenCXX/volatile-1.cpp
@@ -143,20 +143,17 @@
// CHECK-NEXT: volatile load
// CHECK-NEXT: volatile store
- // FIXME: the phi-equivalent is unnecessary
k ? (i=i) : (j=j);
// CHECK-NEXT: volatile load
// CHECK-NEXT: icmp
// CHECK-NEXT: br i1
// CHECK: volatile load
// CHECK-NEXT: volatile store
- // CHECK-NEXT: store [[INT]]* @i
// CHECK-NEXT: br label
// CHECK: volatile load
// CHECK-NEXT: volatile store
- // CHECK-NEXT: store [[INT]]* @j
// CHECK-NEXT: br label
- // CHECK: load [[INT]]**
+ // CHECK: phi
(void)(i,(i=i));
// CHECK-NEXT: volatile load