================
@@ -67,21 +67,22 @@ int main() {
// FIXME: On steps 8 and 14, a decomposition is referred by name, which they
never have.
// CHECK-LABEL: int main()
-// CHECK: [B3]
+// CHECK: [B4]
----------------
benedekaibas wrote:
With enabling the lifetime end CFG elements for this case they appear in:
```text
[B1]
1: [B5.8] (Lifetime ends)
2: [B5.12] (Lifetime ends)
3: [B5.4] (Lifetime ends)
4: [B5.2] (Lifetime ends)
Preds (1): B2
Succs (1): B0
```
On the current main `[B1]` is:
```text
[B1]
1: operator!=
2: [B1.1] (ImplicitCastExpr, FunctionToPointerDecay, _Bool
(*)(__wrap_iter, __wrap_iter))
3: __begin1
4: [B1.3] (ImplicitCastExpr, NoOp, const __wrap_iter)
5: [B1.4] (CXXConstructExpr, [B1.9]+0, __wrap_iter)
6: __end1
7: [B1.6] (ImplicitCastExpr, NoOp, const __wrap_iter)
8: [B1.7] (CXXConstructExpr, [B1.9]+1, __wrap_iter)
9: [B1.5] != [B1.8] (OperatorCall)
T: for (auto & [a, b] : [B4.3])
```
So the lifetime end elements get their own block essentially and what was
`[B1]` becomes `[B2]` and so on.
https://github.com/llvm/llvm-project/pull/228228
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits