r_assignment(0),
assignment_target(false),
r_side_effects(false),
+ in_struct(false),
composite_reference(false)
{ }
unused_nodes.insert(&expr);
}
+void UnusedVariableRemover::visit(StructDeclaration &strct)
+{
+ SetFlag set_struct(in_struct);
+ TraversingVisitor::visit(strct);
+}
+
void UnusedVariableRemover::visit(VariableDeclaration &var)
{
+ TraversingVisitor::visit(var);
+
+ if(in_struct)
+ return;
+
VariableInfo &var_info = variables[&var];
var_info.interface_block = interface_block;
var_info.initialized = true;
record_assignment(&var, *var.init_expression);
}
- TraversingVisitor::visit(var);
}
void UnusedVariableRemover::visit(InterfaceBlock &iface)