Fixed AST handling of variables declared inside a functions main block

This commit is contained in:
Clifford Wolf 2014-08-05 08:35:51 +02:00
parent 0bb6942218
commit 0129d41efa
2 changed files with 16 additions and 3 deletions

View File

@ -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) {

View File

@ -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