Implement proper cleanup semantics for condition variables in for
statements, e.g.,
for(; X x = X(); ) { ... }
Daniel or Anders, please review!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89832 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGenCXX/condition.cpp b/test/CodeGenCXX/condition.cpp
index de33668..a6b74ef 100644
--- a/test/CodeGenCXX/condition.cpp
+++ b/test/CodeGenCXX/condition.cpp
@@ -94,11 +94,16 @@
// CHECK: define void @_Z12for_destruct
// CHECK: call void @_ZN1YC1Ev
for(Y y = Y(); X x = X(); ++z)
+ // CHECK: for.cond:
+ // CHECK: call void @_ZN1XC1Ev
// CHECK: for.body:
// CHECK: store i32 23
z = 23;
// CHECK: for.inc:
- // CHECK: for.end
+ // CHECK: br label %for.cond.cleanup
+ // CHECK: for.cond.cleanup:
+ // CHECK: call void @_ZN1XD1Ev
+ // CHECK: for.end:
// CHECK: call void @_ZN1YD1Ev
// CHECK: store i32 24
z = 24;