diff options
author | Eddie Hung <eddie@fpgeh.com> | 2020-05-14 09:45:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-14 09:45:54 -0700 |
commit | 5bcde7ccc331e575682823222c97cc414bb3d808 (patch) | |
tree | 07405fdd0d0652ad75bb881ef67fa66a5e3315a3 /frontends | |
parent | f02e20907e5d0f343c83ed1a762a39299105167e (diff) | |
parent | 56a5b1d2daf1b244990d81f32183034071ebd185 (diff) | |
download | yosys-5bcde7ccc331e575682823222c97cc414bb3d808.tar.gz yosys-5bcde7ccc331e575682823222c97cc414bb3d808.tar.bz2 yosys-5bcde7ccc331e575682823222c97cc414bb3d808.zip |
Merge pull request #2045 from YosysHQ/eddie/fix2042
verilog: error if no direction given for task arguments, default to input in SV mode
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/verilog/verilog_parser.y | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/frontends/verilog/verilog_parser.y b/frontends/verilog/verilog_parser.y index db9a130cf..f250d7685 100644 --- a/frontends/verilog/verilog_parser.y +++ b/frontends/verilog/verilog_parser.y @@ -853,7 +853,19 @@ task_func_port: } if (astbuf2 && astbuf2->children.size() != 2) frontend_verilog_yyerror("task/function argument range must be of the form: [<expr>:<expr>], [<expr>+:<expr>], or [<expr>-:<expr>]"); - } wire_name | wire_name; + } wire_name | + { + if (!astbuf1) { + if (!sv_mode) + frontend_verilog_yyerror("task/function argument direction missing"); + albuf = new dict<IdString, AstNode*>; + astbuf1 = new AstNode(AST_WIRE); + current_wire_rand = false; + current_wire_const = false; + astbuf1->is_input = true; + astbuf2 = NULL; + } + } wire_name; task_func_body: task_func_body behavioral_stmt | |