This is a bit similar to the Rust while-let construct, if we don't mind the patterns as C2 might never have those:
while let Some(i) = val {
// ...
}
In C2, I imagine that the example:
while (Height h = getHeight()) {
..
}
Should just compile to:
Height h;
while (h = getHeight()) {
..
}
And I would say that's it. No separation, no other behavior, just something simple as this, so that too much new syntax isn't introduced and the complexity doesn't go up