%Error: t/t_func_const_bad.v:11:20: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_output' : ... In instance t t/t_func_const_bad.v:12:64: ... Location of non-constant VAR 'o': Language violation: Outputs/refs not allowed in constant functions localparam B1 = f_bad_output(1,2); ^~~~~~~~~~~~ %Error: t/t_func_const_bad.v:20:20: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_dotted' : ... In instance t t/t_func_const_bad.v:22:24: ... Location of non-constant VARXREF 'EIGHT': Language violation: Dotted hierarchical references not allowed in constant functions t/t_func_const_bad.v:20:20: ... Called from f_bad_dotted() with parameters: a = ?32?h2 localparam B2 = f_bad_dotted(2); ^~~~~~~~~~~~ %Error: t/t_func_const_bad.v:27:20: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_nonparam' : ... In instance t t/t_func_const_bad.v:29:24: ... Location of non-constant VARREF 'modvar': Language violation: reference to non-function-local variable t/t_func_const_bad.v:27:20: ... Called from f_bad_nonparam() with parameters: a = ?32?h3 localparam B3 = f_bad_nonparam(3); ^~~~~~~~~~~~~~ %Error: t/t_func_const_bad.v:35:20: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_infinite' : ... In instance t t/t_func_const_bad.v:37:7: ... Location of non-constant WHILE: Loop unrolling took too long; probably this is an infinite loop, or set --unroll-count above 1024 t/t_func_const_bad.v:35:20: ... Called from f_bad_infinite() with parameters: a = ?32?h3 localparam B4 = f_bad_infinite(3); ^~~~~~~~~~~~~~ %Error: t/t_func_const_bad.v:43:23: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_stop' : ... In instance t t/t_func_const_bad.v:45:7: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing t/t_func_const_bad.v:43:23: ... Called from f_bad_stop() with parameters: a = ?32?h3 localparam BSTOP = f_bad_stop(3); ^~~~~~~~~~ -Info: "Printing in loop: 0" -Info: "Printing in loop: 1" -Info: "Printing in loop: 2" %Warning-USERFATAL: "Fatal Error" ... Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. %Error: t/t_func_const_bad.v:49:24: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_fatal' : ... In instance t t/t_func_const_bad.v:54:7: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing t/t_func_const_bad.v:49:24: ... Called from f_bad_fatal() with parameters: a = ?32?h3 localparam BFATAL = f_bad_fatal(3); ^~~~~~~~~~~ %Error: Exiting due to