summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontends/ast/simplify.cc6
-rw-r--r--tests/simple/task_func.v13
2 files changed, 16 insertions, 3 deletions
diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc
index 694f1d4d..20edc173 100644
--- a/frontends/ast/simplify.cc
+++ b/frontends/ast/simplify.cc
@@ -1460,7 +1460,6 @@ skip_dynamic_range_lvalue_expansion:;
}
for (auto child : decl->children)
- {
if (child->type == AST_WIRE)
{
AstNode *wire = child->clone();
@@ -1488,7 +1487,9 @@ skip_dynamic_range_lvalue_expansion:;
}
}
}
- else
+
+ for (auto child : decl->children)
+ if (child->type != AST_WIRE)
{
AstNode *stmt = child->clone();
stmt->replace_ids(replace_rules);
@@ -1500,7 +1501,6 @@ skip_dynamic_range_lvalue_expansion:;
break;
}
}
- }
replace_fcall_with_id:
if (type == AST_FCALL) {
diff --git a/tests/simple/task_func.v b/tests/simple/task_func.v
index 8dbc90c5..51e31015 100644
--- a/tests/simple/task_func.v
+++ b/tests/simple/task_func.v
@@ -33,3 +33,16 @@ end
endmodule
+
+module task_func_test02( input [7:0] din_a, input [7:0] din_b, output [7:0] dout_a);
+ assign dout_a = test(din_a,din_b);
+ function [7:0] test;
+ input [7:0] a;
+ input [7:0] b;
+ begin : TEST
+ integer i;
+ for (i = 0; i <= 7; i = i + 1)
+ test[i] = a[i] & b[i];
+ end
+ endfunction
+endmodule