r_oper = 0;
visit_and_record(assign.right, assign.oper, true);
- if(assign.target_declaration)
+ if(VariableDeclaration *target_var = dynamic_cast<VariableDeclaration *>(assign.target.declaration))
{
- map<VariableDeclaration *, ExpressionInfo>::iterator i = expressions.find(assign.target_declaration);
+ map<VariableDeclaration *, ExpressionInfo>::iterator i = expressions.find(target_var);
if(i!=expressions.end())
{
/* Self-referencing assignments can't be inlined without additional
r_assign_to_subfield = false;
r_side_effects = false;
TraversingVisitor::visit(expr);
- if(r_assignment && r_assignment->target_declaration)
- record_assignment(*r_assignment->target_declaration, expr, (r_assignment->self_referencing || r_assign_to_subfield));
+ if(r_assignment && r_assignment->target.declaration)
+ if(VariableDeclaration *target_var = dynamic_cast<VariableDeclaration *>(r_assignment->target.declaration))
+ record_assignment(*target_var, expr, (r_assignment->self_referencing || r_assign_to_subfield));
if(!r_side_effects)
unused_nodes.insert(&expr);
}