Skip to content

Cubes (+ cut loops) + move constants = shadow warnings

Cutting loops duplicates all assignments in the innermost loop.

for y ... {
  for x ...
    lhs_0 = rhs_0;
  if y ...
    lhs_0 = rhs_0;
}

Move constants pulls some of these out of the innermost loop and puts them in front but not out of the remainder conditional.

lhs_0 = rhs_0;
for y ... {
  for x ...
    ...
  if y ...
    lhs_0 = rhs_0; // <- shadow warning occurs here
}

Ideally, we would eliminate duplicate assignments.

See Job #1195258.