X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fspirv.cpp;h=2dcc285c624a2806dab80d3a6e487783138f732f;hb=9978e2f62777795bf478b301aadffdd0ee8cbd41;hp=39aa9a0672a72159ec7952cc668c004e9714bd5b;hpb=b125c684e2c2feb86845f051285fe666d8ebfc76;p=libs%2Fgl.git diff --git a/source/glsl/spirv.cpp b/source/glsl/spirv.cpp index 39aa9a06..2dcc285c 100644 --- a/source/glsl/spirv.cpp +++ b/source/glsl/spirv.cpp @@ -1817,6 +1817,7 @@ void SpirVGenerator::visit(FunctionDeclaration &func) variable_load_ids[func.parameters[i].get()] = param_id; } + reachable = true; writer.begin_function_body(next_id++); SetForScope set_func(current_function, &func); func.body.visit(*this); @@ -1872,8 +1873,9 @@ void SpirVGenerator::visit(Iteration &iter) if(iter.init_statement) iter.init_statement->visit(*this); - for(VariableDeclaration *v: AssignmentCollector().apply(iter)) - variable_load_ids.erase(v); + for(Node *n: AssignmentCollector().apply(iter)) + if(VariableDeclaration *var = dynamic_cast(n)) + variable_load_ids.erase(var); Id header_id = next_id++; Id continue_id = next_id++;