if(targets_overlap(i->first, assign.target))
i->second->blocked = true;
- expressions.push_back(ExpressionInfo());
+ expressions.emplace_back();
ExpressionInfo &info = expressions.back();
info.target = assign.target;
// Self-referencing assignments can't be inlined without additional work.
analyze and non-trivial expressions could be expensive to inline. */
if((current_block->parent || (constant && r_trivial)) && var.interface.empty())
{
- expressions.push_back(ExpressionInfo());
+ expressions.emplace_back();
ExpressionInfo &info = expressions.back();
info.target = &var;
/* Assume variables declared in an iteration initialization statement
void UnusedVariableRemover::record_assignment(const Assignment::Target &target, Node &node)
{
- assignments.push_back(AssignmentInfo());
+ assignments.emplace_back();
AssignmentInfo &assign_info = assignments.back();
assign_info.node = &node;
assign_info.target = target;