Do not clone substituted nodes
Signed-off-by: Rafal Kapuscik <rkapuscik@antmicro.com>
diff --git a/systemverilog-plugin/UhdmAst.cc b/systemverilog-plugin/UhdmAst.cc
index 4d13e13..e982c6f 100644
--- a/systemverilog-plugin/UhdmAst.cc
+++ b/systemverilog-plugin/UhdmAst.cc
@@ -2663,14 +2663,14 @@
case vpiLShiftOp: {
current_node->type = AST::AST_SHIFT_LEFT;
log_assert(current_node->children.size() == 2);
- auto unsigned_node = new AST::AstNode(AST::AST_TO_UNSIGNED, current_node->children[1]->clone());
+ auto unsigned_node = new AST::AstNode(AST::AST_TO_UNSIGNED, current_node->children[1]);
current_node->children[1] = unsigned_node;
break;
}
case vpiRShiftOp: {
current_node->type = AST::AST_SHIFT_RIGHT;
log_assert(current_node->children.size() == 2);
- auto unsigned_node = new AST::AstNode(AST::AST_TO_UNSIGNED, current_node->children[1]->clone());
+ auto unsigned_node = new AST::AstNode(AST::AST_TO_UNSIGNED, current_node->children[1]);
current_node->children[1] = unsigned_node;
break;
}
@@ -2728,14 +2728,14 @@
case vpiArithLShiftOp: {
current_node->type = AST::AST_SHIFT_SLEFT;
log_assert(current_node->children.size() == 2);
- auto unsigned_node = new AST::AstNode(AST::AST_TO_UNSIGNED, current_node->children[1]->clone());
+ auto unsigned_node = new AST::AstNode(AST::AST_TO_UNSIGNED, current_node->children[1]);
current_node->children[1] = unsigned_node;
break;
}
case vpiArithRShiftOp: {
current_node->type = AST::AST_SHIFT_SRIGHT;
log_assert(current_node->children.size() == 2);
- auto unsigned_node = new AST::AstNode(AST::AST_TO_UNSIGNED, current_node->children[1]->clone());
+ auto unsigned_node = new AST::AstNode(AST::AST_TO_UNSIGNED, current_node->children[1]);
current_node->children[1] = unsigned_node;
break;
}