mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-07-03 19:55:56 +00:00
When converting a for-loop to a loop, we were not cloning the for-loop's body, but rather the statements within it. This worked fine, except if we also hoisted a variable to a let within that body, which requires the body to be cloned for the 'insert before' to work. This change clones the for-loop body, which fixes the problem, but introduces a block in the destination AST, which is ugly, but not incorrect. Bug: tint:1300 Change-Id: I478244d87f8cf58837102004242ba1c835e21710 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/78821 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
20 lines
250 B
HLSL
20 lines
250 B
HLSL
[numthreads(1, 1, 1)]
|
|
void unused_entry_point() {
|
|
return;
|
|
}
|
|
|
|
void f() {
|
|
int i = 0;
|
|
[loop] while (true) {
|
|
if (!(false)) {
|
|
break;
|
|
}
|
|
{
|
|
}
|
|
{
|
|
const int tint_symbol[1] = {1};
|
|
i = (i + tint_symbol[0]);
|
|
}
|
|
}
|
|
}
|